1

セルフホステッド WCF サービスを作成する必要があります。インターネットを介したクライアントとサーバー間の安全な二重接続が必要です。

WCF のドキュメントをいくつか読んだところ、SSL はポイント 2 ポイントのみであるため、netTcpBinding がイントラネット アプリケーションに適していることがわかりました。インターネットでの申し込みであれば、ポイント2ポイントで接続してはいけませんよね?netTcpBindingを使用したトランスポートセキュリティのSSLは適していませんか?

安全な二重インターネット アプリケーションを作成するには、どの組み合わせを使用すればよいでしょうか。どうもありがとうございます。


http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx このチュートリアルでは netTcpBinding とエンドポイント localhost を使用してみました

エンドポイントの localhost を名前ベースの URL に変更し、ルーターのポートを開発用 PC に転送し、Windows ファイアウォールで同じポートを開きます。

クライアント プログラムは、異なるマシンの各 cients プログラムとチャットできますが、コールバック接続は 1 分後に失われます。

また、バインドを wsDualHttpBinding に変更してみました。クライアント プログラムは、同じマシン内の各クライアントとチャットでき、reliableSession の inactivityTimeout 設定でコールバック接続を維持できます。ただし、別のマシンの別のクライアント プログラムはサーバーに参加できません。そのマシンで Windows ファイアウォールをオフにすると、クライアント プログラムは接続できます。

tcp バインドにより、Windows ファイアウォールを使用してサーバーに接続しているクライアント プログラムを有効にできるようです。しかし、コールバック接続が失われました。

wsDualHttpBinding はコールバック接続を維持できます。ただし、Windows ファイアウォールがオンの場合、サーバーに接続できません。

wsDualHttpBinding のように netTcpBinding コールバック接続を維持する方法はありますか?

4

2 に答える 2

4

デュプレックス接続とセキュリティの 2 つの問題があるようです。

本当に二重接続が必要な場合 (例: サーバーが開始するコールバック)、両方のエンドでファイアウォールを非常に細かく制御しない限り、どちらもインターネット経由でうまく機能しません (クライアントはパブリックにアクセス可能な HTTP エンドポイントを公開する必要があります)。サーバーがコールバックするため)。最善の方法は、.NET 4.0 で新しいリレー サービスを使用することです。これにより、ファイアウォールを介した、サーバーによって開始された接続を模倣できます。

編集: これは現在 AppFabric と呼ばれており、Windows Azureインフラストラクチャの一部です。

セキュリティ面では、いつでもサービス バス上でメッセージ セキュリティを使用できますが、トランスポート セキュリティが問題になる理由もわかりません。

于 2010-01-12T21:42:52.383 に答える
0

user248724 に回答するには、

クライアント プログラムは、異なるマシンの各 cients プログラムとチャットできますが、コールバック接続は 1 分後に失われます。

接続ソケットを維持するには、クライアントまたはサーバーのいずれかが少なくとも毎分互いに ping を実行する必要があります。

于 2010-11-05T17:04:21.007 に答える