1

WCF は、HTTP 認証を使用した HTTP 経由の要求ストリーミング (別名、大きなデータのストリーミング アップロード) をサポートしていません。私の最初の推測では、認証ハンドシェイクが原因で、ストリーミング リクエストがサーバーに 2 回送信されたことが原因でした。しかし、それはバッファリングモードでの大規模なリクエストにも当てはまるため、意味がありません。

カスタム ASP.NET http ハンドラーで、HTTP 認証を使用して要求ストリーミングを簡単に実装できます。クライアントを制御できる場合は、明示的な HTTP HEAD を実行してサーバーに対して事前認証を行い、永続的な接続を再利用して HTTP POST で実際のストリーミング要求を行うことにより、「複数の要求の問題」を回避することもできます。

それで、WCFがこれをサポートしていない理由を誰でも考えることができますか? (それをする時間がないことを除いて)

ありがとう

4

1 に答える 1

1

その理由は、HTTP 401 を取得するために最初にリクエスト全体 (ストリーミングも含む) を送信し、セキュリティ ハンドシェイクに従い、最後にリクエスト全体を再度送信する必要があるためです。ストリーミングは非常に大きなメッセージで使用されることになっているため、このプロセスは非常に遅くなり、ネットワーク経由で不要なトラフィックが追加される可能性があるため、MS はおそらくそれをまったく許可しないという設計上の決定を行った.

HEAD リクエストを使用したトリックは、WCF では実装されていません。

于 2011-10-07T09:38:04.810 に答える