代码之家  ›  专栏  ›  技术社区  ›  Nick Ramage

使用MSBuild生成客户端时出现ASP.NET Web服务SoapException

  •  0
  • Nick Ramage  · 技术社区  · 12 年前

    我有一个.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网络监视器来查看SOAP,以查看XML文档中的问题所在。看起来至少有一个标记没有被正确解析。例如,MS网络监视器显示一个明显损坏的标签,如下所示:

    - Element: XmlElement:<Country> - USA</
        - STag: <Country>
            - Tag: <Country>
                - TagName: Country
                    Name: Country
        Content: USA</
    

    无法识别ETag(结束标记)。内容应为“USA”,ETag应为“ </Country>. "

    为什么会发生这种情况?具体来说,在Visual Studio中运行的应用程序和使用MSBuild构建的应用程序之间有什么区别,这可能会导致此问题?我比较了构建输出,它们是相同的文件,但其中一些文件的大小不同。

    1 回复  |  直到 12 年前
        1
  •  0
  •   Nick Ramage    12 年前

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