我有一个.NET(2.0)Windows窗体应用程序,它使用作为.NET(3.5)网站的一部分托管的ASP.NET Web服务。该网站托管在运行IIS7的Windows服务器上。当我在Visual Studio(2010)中运行Forms应用程序时,我可以毫无问题地使用Web Service。然而,当我建立与MSBuild的(4.0)的表单应用程序,它建立和运行,但在使用服务的以下异常被抛出:当使用MSBuild构建客户端时ASP.NET Web服务SoapException
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构建的应用程序之间可能会导致此问题的区别是什么?我比较了构建输出和它们是相同的文件,但其中一些文件有大小差异。
你怎么知道标签是如何被解析的? – 2013-02-21 19:35:14
@JohnSaunders我在帖子中添加了一个来自MS网络监视器的视图,它显示了一个看起来不正确的解析标签的例子。 – 2013-02-22 18:10:39
MS网络监视器可能会以某种方式解析标记,而ASMX可能会解析另一个标记。网络监视器没有向您显示ASMX解析的结果 - 这两个解析是独立的。请张贴SOAP消息本身的部分内容,而不是任何代码对它的解释。 – 2013-02-22 18:23:04