テスト サーバーで、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を使用してサービスに接続することです。これは、ベンダーがテストシステムでエンドポイントを更新できるようになるまで更新しないためです。