2

webHttpBinding を使用して、従来の REST/プレーンな古い xml Web サービスを WCF に置き換えようとしています。既存のクライアントと下位互換性がなければなりません - 現在、リクエストで content-type ヘッダーを送信していません。

クライアントを新しい Web サービスに向けると、HTTP ERROR 415 - missing content type が表示されます。

content-type ヘッダーなしで生の要求を受け入れるように WCF を構成することは可能ですか?

4

2 に答える 2

1

415 は「missing content type」ではなく、415 Unsupported Media Typeです。これは、サーバーが content-type を受信して​​いることを示しており、それを処理する方法を知らないだけです。HTTP 仕様によると、コンテンツ タイプを証明することは SHOULD です。MUST ではないため、WCF は content-type のないリクエストを受け入れる必要があります。そうでない場合は、新しいWCF Web APIの使用を検討することをお勧めします。これは、HTTP 仕様に準拠しており、コンテンツ タイプ ヘッダーなしでコンテンツを渡すことができるためです。


アップデート:

どうやらこれは.Netフレームワークの以前のバージョンのバグであり、回避策/修正があります https://connect.microsoft.com/wcf/feedback/details/475964/content-type-header-validated-at-the-アプリケーションレベルの代わりにトランスポートレベルとトロウズ-a-415-例外

于 2011-05-19T13:08:00.880 に答える
0

.net 3.5 では、答えは NO です。アプリケーション層ではなく、トランスポート層で content-type が誤って検証されているようです。これを回避する唯一の方法は、カスタム HtppTransportChannel でカスタム バインディングを使用することです。

このバグは .net 4.0 で修正されています

于 2011-06-06T02:17:10.833 に答える