1

クライアントとサーバーの両方が .net 3.5 で記述されているため、相互運用性の問題はありません。

サーバーはポート 443 で完全にアクセス可能です (私はサーバーをホストしているので、必要に応じて他のポートを開くことができます)

ただし、クライアントへのアクセスは少なくなります。多くの場合、企業のファイアウォールの背後、または NAT の背後にあるか、http/https プロキシを使用してインターネットに接続しています。

クライアントとサーバー間で暗号化された双方向通信を確立する必要があります。

WCF で提供される 2 つの双方向チャネルは、うまくいかないようです。

  • NetTcpBinding は http プロキシをサポートしていないようです ( source )

  • WSDualHttpBinding では、クライアントがサービスのコールバック エンドポイントを提供するパブリック URI を持っている必要がありますが、残念ながらここではそうではありません ( source )

WCF は、クライアント側でファイアウォール/プロキシ設定を調整せずに、この種の暗号化された双方向接続 (必要に応じて https チューネリングを使用してサイレントに) を確立できますか?

4

6 に答える 6

1

コメットと呼ばれるテクノロジーを探しています。ウィキペディアのエントリ 「comet wcf」で Google を検索すると、適切な方向を示す記事が見つかります。

于 2008-12-18T15:30:18.390 に答える
0

ここで興味深い情報を見つけました

基本的に、次のように app.config ファイルを編集できます。

<system.net>
   <defaultProxy useDefaultCredentials="true">
      <proxy bypassonlocal="False" proxyaddress="http://gateway:8080" />
   </defaultProxy>
</system.net> 

この記事では、カスタム バインディングで機能すると主張していますが、NetTcpBinding で機能するかどうかはわかりません。試してみて、どうなったかお知らせします。

UPDATE :機能しません (defaultproxy 構成は、http および https リクエストに対してのみ機能します)

于 2008-12-18T15:32:56.793 に答える
0

私にも同様のニーズがあり、WCF を介した Silverlight 2 に提供されたコメット風の機能に関するこの記事を見ました: Silverlight Polling Duplex

まだ試していませんが、デスクトップ ランタイムに対してビルドされたアセンブリには、クライアント クラスも含まれる可能性があると考えています。

編集:両方のアセンブリを確認しましたが、どちらも同じバインディングとチャネルを実装しています。デスクトップ フレームワークに対してビルドされたばかりの同じコードのように見えます。そのため、デスクトップ アプリケーションで「サーバー」アセンブリを使用できるはずです。

于 2009-04-17T19:06:31.127 に答える
0

同様の質問に対して得たこの回答によると、.NET v4 は WSDualHttpBinding クラスを使用して NAT を介して機能します。あなたの質問は数年前に尋ねられたので、それはあなたにとって選択肢ではありませんでした...

于 2010-12-24T12:24:32.373 に答える
0

はい。WSDualHttpBinding または NetTcpBinding を使用できます。

于 2008-12-18T12:38:41.933 に答える