使用MSBuild构建客户端时的ASP.NET Web服务SoapException

时间:2013-02-21 18:27:31

标签: asp.net web-services soap msbuild asmx

我有一个.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构建的应用程序可能会导致此问题之间的区别是什么?我比较了构建输出,它们是相同的文件,但它们之间存在大小差异。

1 个答案:

答案 0 :(得分:0)

事实证明,这是由过时的Web服务代理类引起的。在客户端应用程序中更新Web引用可以解决问题。