2

サーバーからデータを読み取り、インターネット (VPN なし) 経由で転送し、別のサーバーのディスクに書き込む必要があります。多くの選択肢を考えることができましたが、最終的に実装したのは次のとおりです。

  1. X 分ごとに新しいデータを送信する Windows サービスとしての送信者
  2. WSHttpBinding を使用した、WCF セルフ ホスト サービスとしてのレシーバー。
  3. XML にシリアル化されたオブジェクトである文字列として転送されるデータ

しかし、それを行った後、それを行うには多くの方法があることに気付きました。

  1. FTP などの他のプロトコル。
  2. http://msdn.microsoft.com/en-us/library/ms731092.aspxにリストされているその他のバインディング
  3. 元のオブジェクト タイプなど、その他のパラメータ タイプ。

そして、これらのオプションのいずれかが、より高速で信頼性が高く、より安全な転送につながるかどうか疑問に思っています. あなたは何をお勧めします?

4

6 に答える 6

2

SFTP (SSH ファイル転送プロトコル) は、可能性がある場合に投票します。

SSH 接続を介して FTP をほとんどトンネリングします。

...メッセージ ベースのセキュリティ用の WS-Security ポリシーに準拠する Web サービスを作成することもできます (使用するモデルによっては、メッセージはユーザー名とパスワードのペアから X.509 証明書まで、あらゆるものを使用して暗号化されます)。

既製のパッケージ/プロトコルが機能し、目的に完全に適している場合、カスタムを構築するのは大変な作業のように思えます。

于 2009-07-24T14:27:48.477 に答える
1

私はGoogle Protocol Buffersを使用しています。そのためのソケット層を書くのに十分簡単です。

非常にコンパクトで、多言語に対応し、高速で、何よりも、互換性を損なうことなく、データ フィールドの追加が簡単です。

Stack Overflow の定期的な寄稿者であるMarc Gravellによって書かれたprotobuf-net をチェックしてください。

于 2009-07-24T15:23:16.247 に答える
1

セキュリティに関しては、System.Security.Cryptography.CryptoStreamを利用して、データをネットワーク経由で渡すときに暗号化の層を提供できます。

于 2009-07-24T14:31:19.233 に答える
1

送信者はかなり広く開かれています - ほとんどどんな選択でも良いでしょう。

レシーバーの場合、考慮すべき 1 つのオプションは HttpHandler です。これは、ASP.NET プロジェクト内の ashx ファイルです。受信者にオプション/情報を提供する任意のカスタム http ヘッダーを使用できます。データは、HTTP 要求のペイロードにすぎません。テキスト エンコーディングによってデータのサイズを増やす必要はありません。セキュリティは HTTPS に組み込まれています。それはかなり簡単です。

唯一の欠点は、ある種の「接続が切断され、機能を中断したところから再開する」ことを実装したい場合です。これはまだ可能ですが、少し難しいです。専用のカスタムサービスを使用すると簡単になる可能性があります.

于 2009-07-24T14:36:06.933 に答える