0

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

4

1 回答 1

0

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

于 2013-03-15T18:05:44.540 回答