1

TCP を使用するサービスがあり、すべてのメソッドが非同期であるため、Begin/End メソッドを実装しています (C# 4.0 を使用しています)。

app.confing を変更して転送モードをバッファリングではなくストリーミングに設定しただけの場合、クライアントで非同期呼び出しを行うと、アプリケーションは応答を永遠に待ちます。ただし、転送モードを Buffered に変更すると、正常に動作します。

また、アプリケーションを起動するとエラー 10061 が発生し、宛先サービスが積極的に接続を拒否するため、Buffered 転送モードで trustedSession を使用する必要があることに気付きました。

ストリーミング転送モードを使用する場合、reliableSession を無効にする必要がないことはわかっているので、非同期メソッドでストリーミング転送モードを使用できるかどうかを尋ねています。

ありがとう。

編集: 5MB のファイルを転送しようとしています。ただし、これはテストです。本番環境ではファイルが大きくなる可能性があるため、将来のニーズに備えたいと思います.

4

1 に答える 1

5

答えはイエスです。非同期メソッドでストリーミング転送モードを使用できます。次のリンクをクリックすると、非同期メソッドを使用してストリーミング機能を実現するために必要な手順が説明されている MSDN の記事に移動します。

次の投稿で状況を明確にする必要があります

また、別の記事では、ストリーミング モードと非同期メソッドを使用して大きなファイルをアップロード/ダウンロードする機能を提供するセルフ ホスト REST WCF サービスを作成する方法について、コード サンプルを使用して詳細に説明しています。SOAP ベースのサービスを使用して同じことを実現できます。構成関連のものは、転送モードをストリーミングに設定し、タイムアウト値を増やします。完全な実装サンプルについては、次のリンクを確認してください: http://www.level533.com/2010/11/uploading-large-files-to-self-hosted-wcf-rest-service/

PS: この回答ですべての内容を提供することはできません。そうでなければ、これは本格的な記事になってしまいます。

于 2012-06-26T18:25:03.150 に答える