日期:2014-05-17  浏览次数:21583 次

webservice调用服务,服务数据调用失败
使用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, ""); 
}