我有一個.NET(2.0)Windows窗體應用程序,它使用作爲.NET(3.5)網站的一部分託管的ASP.NET Web服務。該網站託管在運行IIS7的Windows服務器上。當我在Visual Studio(2010)中運行Forms應用程序時,我可以毫無問題地使用Web Service。然而,當我建立與MSBuild的(4.0)的表單應用程序,它建立和運行,但在使用服務的以下異常被拋出:當使用MSBuild構建客戶端時ASP.NET Web服務SoapException
System.Web.Services.Protocols.SoapException: Server was unable to read request. --->
System.InvalidOperationException: There is an error in XML document (the line number
varies). ---> System.FormatException: Input string was not in a correct format.
我用MS網絡監視器查看SOAP看哪裏該問題出現在XML文檔中。看來至少有一個標籤沒有被正確解析。例如,MS網絡監視器顯示明顯破標籤中的一個,如下所示:
- Element: XmlElement:<Country> - USA</
- STag: <Country>
- Tag: <Country>
- TagName: Country
Name: Country
Content: USA</
一個ETag(結束標記)不被識別。內容應該是「USA」,ETag應該是「</Country>.
」
爲什麼會發生這種情況?具體來說,在Visual Studio中運行的應用程序和使用MSBuild構建的應用程序之間可能會導致此問題的區別是什麼?我比較了構建輸出和它們是相同的文件,但其中一些文件有大小差異。
你怎麼知道標籤是如何被解析的? – 2013-02-21 19:35:14
@JohnSaunders我在帖子中添加了一個來自MS網絡監視器的視圖,它顯示了一個看起來不正確的解析標籤的例子。 – 2013-02-22 18:10:39
MS網絡監視器可能會以某種方式解析標記,而ASMX可能會解析另一個標記。網絡監視器沒有向您顯示ASMX解析的結果 - 這兩個解析是獨立的。請張貼SOAP消息本身的部分內容,而不是任何代碼對它的解釋。 – 2013-02-22 18:23:04