0

C# で Web サービスを利用しようとしています。Web サービスのドキュメントでは、Web サービスは複数のパケットではなく単一のパケット/ストリームとしてのみ要求を受け入れると記載されています。

Visual Studio で Web 参照を介して Web サービスにアクセスするときに、この設定を変更する方法を知っている人はいますか?

リクエストを送信すると、SOAPException「受信リクエストを解析できません」というエラーが発生します。これが理由だと思います。

ご協力いただきありがとうございます!

-スティーブ

4

1 に答える 1

0

これは簡単なことではありませんが、それほど難しいことでもありません(問題を正しく特定したと仮定します)。ASMXクライアントプロキシをカスタマイズする方法を参照してください。「ヘビーデューティーのカスタマイズ」セクションではGetWebRequest、部分クラスを使用してプロキシクラスのメソッドをオーバーライドする方法を説明します。Web参照名が「Service1Proxy」であると仮定します。

public partial class Service1Proxy 
{
    protected override WebRequest GetWebRequest(Uri uri)
    {
        HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri);
        request.SendChunked = false;
        return request;
    }
}

これを試すことをお勧めしますが、baseGetWebRequestメソッドの呼び出し後にブレークポイントを設定することもお勧めします。SendChunked元のリクエストにフラグが設定またはクリアされているかどうかを確認してください。

于 2009-08-11T00:13:15.953 に答える