0

テスト サーバーで、IIS でホストされている WCF サービスの URL にアクセスしようとすると、HTTP 400 エラーが発生します。サーバー上の WCF ログを見ると、「メッセージの本文が空であるため、読み取ることができません」と表示されます。同じサーバー上の別のサービスに対して同じことをしようとすると、正常に動作し、WSDL のパスを取得できます。

SoapUI を介して WSDL に接続することもできません。ただし、Visual Studio からサービスに接続できます。

私が見たほとんどの投稿はhttpGetEnabled="true"、構成ファイルで必要なことに言及しています。そのプロパティは、テスト サーバーの web.config にあります。

他の投稿では、追加のプロパティが必要であると述べていますが、運用サーバーがそれらなしで動作する場合になぜそれらが必要になるのかわかりません。

Davin に応じて編集: これは、生産要求の Fiddler からの生のビューです。GET http://production.svc HTTP/1.1 Accept: text/html, application/xhtml+xml, / Accept-Language: en-US User-エージェント: Mozilla/5.0 (互換性; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) Accept-Encoding: gzip、deflate 接続: Keep-Alive ホスト: production

これは、テスト リクエストの Fiddler からの生のビューです。GET http://test.svc HTTP/1.1 Accept: text/html, application/xhtml+xml, / Accept-Language: en-US User-Agent: Mozilla/5.0 (互換性; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) Accept-Encoding: gzip、deflate 接続: Keep-Alive ホスト: テスト

これは、IE9 を使用してサービスに接続しようとしていました。

CodeCaster へ: フレームワーク 4 を使用し、asp.net v4.0 アプリ プールで実行されています。フレームワーク 4 がサーバーにインストールされます。セットアップしたテスト アプリケーションを使用すると、サービスに接続してメソッドの 1 つにリクエストを送信でき、正常に動作します。

私の問題は、IEまたはsoapUIを使用してサービスに接続することです。これは、ベンダーがテストシステムでエンドポイントを更新できるようになるまで更新しないためです。

4

1 に答える 1

0

HTTP 400 はBadRequest. これは、サーバーがリクエストを処理できないために拒否した場合にスローされます。あなたが受け取っているエラーメッセージは、この文脈では意味があります。これは、サーバーエンドポイントを見つけられることも意味します。したがって、問題はおそらくありませんhttpGetEnabled

必要なことは、サーバーに送信される HTTP メッセージを確認することです。このため、クライアントをプロキシ (フィドラー) に向けてから、リクエストをサーバーに転送するようにフィドラーを構成することをお勧めします。次に、要求が期待どおりの形式であることを確認する必要があります。

于 2013-03-12T15:05:11.763 に答える