Web Services Web服务响应中的空字符导致XML文档错误

to94eoyn  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(162)

SQL Server Integration Services 2005中似乎存在一个错误,在某些情况下,该错误会将零长度字符串转换为单个字符串,该字符串的字符恰好为ansi空,即ascii字符零(请注意,这与sql空非常不同)。
这种情况发生在我们的一个数据加载过程中,因此应该为空的地址行中会出现这些字符。
我们通过Web服务公开此数据,数据序列化正常。当通过IE查看Web服务响应时,空值甚至会被标准XSL剥离,但是当您查看源代码时,您可以看到它们:

Addr2="�"

但是,当您从.Net生成的代理调用此服务时,会收到一个错误:

"There is an error in XML document"

这大概是因为null会终止文件,因此会使文件无效。
虽然我们可以尽力防止这些值进入数据库,但是当这些值出现在响应中时,有没有办法防止代理代码出错呢?我们并不真的想在所有Web方法中添加代码来检测和删除这些值。

v9tzhpje

v9tzhpje1#

我也遇到过类似的问题,虽然它发生在我们自己的Web服务中。为了诊断这个问题,我调试了生成的XmlSerializer DLL。您可以通过添加

<system.diagnostics>
  <switches>
    <add name="XmlSerialization.Compilation" value="4"/>
  </switches>
</system.diagnostics>

有关详细信息,请参阅MSDN文章。
我们能够在Web服务端修复该问题。
另一个解决方案可以在this location找到。

相关问题