WebServices的WebMethod的MessageName属性不能为中文

   客户用Soap调我写的一个WebServices时候(这个WES建的时候因为需要用到重载,设置了几个不同的MessageName,为了看着方便就用了中文:(),结果一直提示” 服务器未能识别 HTTP 标头 SOAPAction 的值“.

    搜了一下,开始以为是WebService的Namespace的问题,测试了下不是.

    开启HttpPost和HttpGet方式调用WebServices,用XmlHttp调用,正常.

    因为客户不是用代理类和XmlHttp方式而是用的Soap来调用WSE,就写了个PHP的调用WSE的叶子(nusoap调用,反正这个东西是Soap来的),然后就看到了”System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction”.

    怎么搜也没找到合适的资料(因为没人用中文命名MessageName属性-_-!),后来感觉错误提示后边是一堆乱码,就猜是不是中文的问题,尽管Soap和WSE都设置的UTF-8.尝试修改MessageName为英文,终于正常了.

    还没有测试用DotNet或者ASP等来用Soap调,不过估计应该和PHP没什么区别…

PS:哪个大佬能想办法让它可以支持中文?

提醒:MessageName中也尽量不要出现空格..

你可能感兴趣的:(WebServices)