1

Windows Server 2008を搭載したサーバー pc があります。また、ポート 8525で動作し、 Windows サービスでホストする wcf サービスもあります。サーバー ファイアウォールでポートを開きます (追加ルール)。

私のサーバー マシンには有効な IP があります。そのため、クライアントは ((http)://MyServerIP:8525/ServiceName) で私のサービスに接続しようとします。

私のアプリケーション ユーザーはすべて企業で働く人々です。そのため、ユーザーのインターネットは安全なネットワーク (プロキシ サーバーまたは VPN 接続) から来ています。

問題はここにあります:

私のクライアントの多くは、ローカルネットワークが私のプログラム接続をブロックしているように見える接続の問題を抱えています(サーバーシステムに接続しようとすると、診断リスナーがログに記録します)が、サービスはログを保存しません。

彼らのインターネットサーバーにはファイアウォールがあり、それが私をブロックしていると思います.私はそれらのいくつかを

<defaultProxy enabled="true" useDefaultCredentials="true" />

しかし、それでも多くの人が同じ問題を抱えています。もう1つの厄介な問題は、ネットワーク管理者がセキュリティの問題のためにそのポートを開かず、私を助けてくれないことです.

一般的な例外は、System.ServiceModel.EndpointNotFoundException > System.Net.WebException > System.Net.Sockets.SocketException (クライアント側) です。

自宅から接続した場合、この問題は発生しませんでした。

私の質問 :

c# コードまたはクライアント app.config でこの問題を解決する方法はありますか? または、少なくともサービス構成(サーバー側)を変更してこれを修正します。

4

1 に答える 1

1

唯一の簡単な解決策は、そのサービスをポート 80 でホストすることです

問題は、一部のネットワークが、許可されたサービス (http、https、pop など) 以外のポートへの発信接続を許可しないことです。

または、これらのネットワークのシステム管理者に、IP/ポートへのトラフィックを許可するよう依頼することもできます

そのサーバーにiisがある場合は、iisでwcfをホストできます。

一度に 1 つのプロセスだけがアドレスのポートにバインドできることに注意してください。

そこで、いくつかの情報を見つけることができます: WCF サービスは IIS と同じポートをリッスンできますか?

于 2013-03-04T09:23:50.713 に答える