似乎SQL Server Integration Services 2005中存在一個錯誤,在某些情況下,它會將零長度字符串轉換爲單個字符字符串,其字符恰好是一個ANSI空值,即。 ascii字符爲零(請注意,這與sql null非常不同)。Web服務響應中的空字符導致XML文檔錯誤
這發生在我們的一個數據加載過程中,因此應該爲空的地址行會將這些字符包含在其中。
我們通過網絡服務公開這些數據,數據序列化正常。空值甚至可以通過標準的XSL剝離時,Web服務響應通過IE瀏覽然而,當您查看源代碼,你可以看到他們:
Addr2="�"
可是,當你調用從.NET這個服務生成的代理,你得到一個錯誤:
"There is an error in XML document"
這大概是因爲null終止了文檔,因此使其無效。
雖然我們可以盡力阻止這些數據進入數據庫,但有什麼辦法可以防止代理代碼在響應中出現錯誤?我們並不是真的想要將代碼添加到我們的所有Web方法中來檢測和刪除這些方法。
感謝您的配置提示。這很有用。我不太確定其他鏈接中的解決方案,因爲問題是用ascii零字符而不是null來做更多的事情(如果您欣賞細微差別) – 2009-01-29 13:06:18