2

WindowsサービスでホストされているWCFサービスがあります。このサービスにファイル転送機能を追加したいのですが、次の質問があります。ファイルの転送は双方向であり、ファイルは大きくない(約10MB)ことを考慮すると、次のようになります。

1:MSDNで、「ストリーム化されたトランスポート全体で発生する操作は、最大で1つの入力または出力パラメーターとのコントラクトを持つことができる」と読みました。複数のパラメータで操作できないということですか?

2:転送モードにStreamedを使用する場合、「in」または「out」パラメーターがコレクションである操作で転送されるデータのサイズに注意する必要がありますか?

3:モードをストリーミングに設定するには、TransferMode以外のものを変更する必要がありますか?

4

1 に答える 1

3

WCF ファイル転送の方向性については、この投稿をご覧ください。MTOM エンコーダーを使用する必要があります。この投稿には、いくつかの正当な理由といくつかの例があります。

  1. はい。
  2. MTOM を使用してすべてストリーミング エンコードされている限り、サイズは問題になりません。バインディング構成で maxReceivedMessageSize を設定していることを確認してください。
  3. それと、メッセージのメッセージ コントラクトを作成します。下記参照:

サンプル メッセージ コントラクト:

[MessageContract()]
public class FileTransferRequest
{
  [MessageHeader(MustUnderstand = true)]
  public string FileName;

  [MessageBodyMember(Order = 1)]
  public System.IO.Stream Data;
}
于 2009-03-04T12:28:20.593 に答える