我有一个.NET(2.0)Windows窗体应用程序,它使用作为.NET(3.5)网站的一部分托管的ASP.NET Web服务。该网站托管在运行IIS7的Windows服务器上。当我在Visual Studio(2010)中运行Forms应用程序时,我能够毫无问题地使用Web服务。但是,当我使用MSBuild(4.0)构建Forms应用程序时,它会构建并运行,但是当使用该服务时,将抛出以下异常:
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 Network监视器查看SOAP以查看XML文档中的问题所在。看来至少有一个标签没有被正确解析。例如,MS Network监视器显示一个明显损坏的标签,如下所示:
- Element: XmlElement:<Country> - USA</
- STag: <Country>
- Tag: <Country>
- TagName: Country
Name: Country
Content: USA</
无法识别ETag(结束标记)。内容应为“USA”,ETag应为“</Country>.
”
为什么会这样?具体来说,在Visual Studio中运行的应用程序和使用MSBuild构建的应用程序可能会导致此问题之间的区别是什么?我比较了构建输出,它们是相同的文件,但它们之间存在大小差异。
答案 0 :(得分:0)
事实证明,这是由过时的Web服务代理类引起的。在客户端应用程序中更新Web引用可以解决问题。