【发布时间】:2009-02-14 22:31:38
【问题描述】:
我将提出并回答我自己的问题,希望没人介意,但我认为这对其他人可能有用。
如果您设置的 ASP.NET Web 服务返回的对象包含对 XML 无效的字符,则在将对象序列化为 SOAP xml 并且客户端尝试反序列化该 xml 后,将引发异常。
你如何解决这个问题?
【问题讨论】:
-
如果您的 Web 服务返回格式错误的 XML,解决方案是修复 Web 服务,而不是修补格式错误的 XML。 Web 服务可能正在做其他您无法轻易隐藏的错误事情。
-
这是我从数据库中提取的数据。字符编码正确,只是对 xml 无效。我宁愿让我的用户修复这些字符,也不愿让我的网络服务在每次输入非法字符时中断。如果你告诉读者不要验证它所读的内容,反序列化就会起作用。
-
您使用什么 XML 组件来构造这个包含无效字符的 XML?我打算在这里冒险并猜测答案是“我正在使用字符串连接。”
-
不,我正在使用 XmlSerializer。我正在序列化的数据中有奇怪的不可打印字符,尽管 XmlSerializer html 对它们进行了编码,但它仍然会引发异常。我使用的是标准的 ASP.NET 网络服务,我没有自己实现soap。
标签: asp.net xml web-services serialization