大きなファイルをダウンロードしてサーバーにアップロードしたい。大きなファイル(Server/Client)を.NETで転送する
しかし、私は(System.Net.Socketsクラスで)
- TCP/IPを使用することをお勧めは何か知らない(IISなし - 私はのServiceHostクラスを使用)
などですか?
大きなファイルをダウンロードしてサーバーにアップロードしたい。大きなファイル(Server/Client)を.NETで転送する
しかし、私は(System.Net.Socketsクラスで)
などですか?
あなたはコンテキストの詳細を記述する必要があります。認証が必要な場合は、WCFを検討することができます。 WCFではというオーバーヘッドはほとんどありませんが、セキュリティ/認証/変更を簡単に管理できます。生のファイル転送(同じチャンネルを使用)はWCFと異なるものであってはならないので、その機能が必要な場合はさらに複雑さを考慮する必要があります。
また、大量のデータを転送する必要がある場合は、接続が失敗してこの状況を管理する必要があると考えてください。最初からユーザーにアップロード/ダウンロードを強制したくないと思います。これには、FTP(WCFでサポート)やFtpWebRequest
クラスで利用可能な、よく知られているプロトコルを使用することを検討することができます。
さまざまな技術の比較のための良い記事:http://msdn.microsoft.com/en-us/library/bb310550.aspx(ただし、1つの大きなデータ転送がありますが、複数の小さな転送ではありません)。
"非常に少ないオーバーヘッド" - 私は笑った... WCFは繊細な花ではない - それは非常に顕著なオーバーヘッドを持っている可能性が非常にある –
LOL私は皮肉であったが、WCFは光ではないがチャンネルに依存するスタック(私はあなたが50%のパフォーマンスを得ることができる間違った選択と推測する)。大きなファイルの場合、設定が適切であれば、それほど目立たないかもしれません。この場合、私は最大の問題は待ち時間だと思います。 –
個人的には、私はSystem.Net.FtpWebRequestを使用します。
これはまさにこの目的のためのものです。
私はちょうどチャンクしました... 1つの大きなメッセージを送信しようとする代わりに、複数の小さなメッセージを送信してください。 –