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