webservice调用服务,服务数据调用失败,该如何处理
webservice调用服务,服务数据调用失败
使用webservice,服务端向客户端的浏览器发送数据时,由于写入的数据与soap协议有冲突,导致报了xml文件有误,但是debug查看数据,数据也很正常,这种情况怎么解决呢
------解决方案--------------------
应该把异常贴出来看,SOAP本身是基于XML的,如果是包含的字符与SOAP本身的协议关键字有冲突或者是其它的特殊字符,可以考虑用XML的CDATA把那部分字符包装起来,XML对CDATA段里的数据全部按正常字符处理
------解决方案--------------------
这个不是协议冲突,是你的XML文档中存在一些不可见的非法字符所致。
类似bom之类的。
查检下你的编码吧。
可参考如下的解决办法:
使用webservice,服务端向客户端的浏览器发送数据时,由于写入的数据与soap协议有冲突,导致报了xml文件有误,但是debug查看数据,数据也很正常,这种情况怎么解决呢
Web服务
------解决方案--------------------
应该把异常贴出来看,SOAP本身是基于XML的,如果是包含的字符与SOAP本身的协议关键字有冲突或者是其它的特殊字符,可以考虑用XML的CDATA把那部分字符包装起来,XML对CDATA段里的数据全部按正常字符处理
------解决方案--------------------
这个不是协议冲突,是你的XML文档中存在一些不可见的非法字符所致。
类似bom之类的。
查检下你的编码吧。
可参考如下的解决办法:
public static string CleanInvalidXmlChars(string text)
{
// From xml spec valid chars:
// #x9
------解决方案--------------------
#xA
------解决方案--------------------
#xD
------解决方案--------------------
[#x20-#xD7FF]
------解决方案--------------------
[#xE000-#xFFFD]
------解决方案--------------------
[#x10000-#x10FFFF]
// any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.
string re = @"[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD\u10000-u10FFFF]";
return Regex.Replace(text, re, "");
}