0

.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でビルドされたアプリケーションの違いは何でしょうか。ビルド出力を比較しましたが、それらは同じファイルですが、いくつかのファイルにはサイズの違いがあります。

4

1 に答える 1

0

これは、古いWebサービスプロキシクラスが原因であることが判明しました。クライアントアプリケーションでWeb参照を更新すると、問題が修正されました。

于 2013-03-15T18:05:44.540 に答える