.NET(3.5)Webサイトの一部としてホストされているASP.NET Webサービスを使用する.NET(2.0)Windowsフォームアプリケーションがあります。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ドキュメントのどこに問題があるかを確認しました。少なくとも1つのタグが正しく解析されていないように見えます。たとえば、MSネットワークモニターは、明らかに壊れているタグの1つを次のように表示します。
- Element: XmlElement:<Country> - USA</
- STag: <Country>
- Tag: <Country>
- TagName: Country
Name: Country
Content: USA</
ETag(終了タグ)が認識されません。コンテンツは「USA」で、ETagは「</Country>.
」である必要があります
なぜこうなった?具体的には、Visual Studioで実行されているアプリケーションと、この問題を引き起こす可能性のあるMSBuildでビルドされたアプリケーションの違いは何でしょうか。ビルド出力を比較しましたが、それらは同じファイルですが、いくつかのファイルにはサイズの違いがあります。