2016-09-29 5 views
0

基本的なhttpバインディングを使用して、httpポート80経由で互いに通信する3つの自己ホストWCFウィンドウサービスがあります。同じマシンでは、IISでホストされているWebサイト(既定のポート80で稼動している)もあります。これらのサービスも管理し通信します。このウィンドウズ10ホスティングマシン内ではすべてがうまく動作する。すなわち、ウェブサイトはサービスと話すことができ、サービスは互いに話すことができる。WCF httpサービスがWindows 10ファイアウォールによってブロックされました

ネットワーク上の別のPCからWebサイトにアクセスしようとすると、ブラウザに「サーバーのDNSアドレスが見つかりませんでした」というメッセージが表示されます。私はWCFサービスのメタデータのURLにアクセスすることさえできません。

これは、ホストマシン上のファイアウォールの問題のように見えるので、TCPポート80の受信および送信ルールを追加し、「World Wide Webサービス(HTTPトラフィックイン)」および「World Wide Webサービス(HTTPSトラフィックイン)」が有効になります。これらの変更はうまくいきませんでしたので、追加したTCPルールを削除しました。

最後に、ファイアウォールを完全に無効にして、別のPCからWebサイトにアクセスできました。しかし、ファイアウォールを再度有効にすると、Webサイトは引き続き動作し、突然のWCFメタデータにもアクセスできます! これがなぜ起こっているのか分かりません。私は問題を何度も正常に再現しました。

誰かが説明を提供したり、他のファイアウォールのルールを試してみることはできますか?

私の最終目標は、エンドユーザーがファイアウォールを使いこなす必要がないように、サービスとWebサイトをインストーラにパッケージ化することです。彼らはそれをもう一度やり直すことさえできないかもしれません。

ありがとうございます

答えて

0

httpのポート80でアウトバウンドルールはどうですか。

+0

既に試しました。 TCP 80のインバウンドとアウトバウンドのルールを追加することもhttpに影響します。 – HomeAlone

0

最後に考え出しました。ホスティングマシンにアクセスするために使用していたURLは、マシン名を使用していました。マシンが名前検索に応答するためには、パブリックプロファイルに「ネットワークディスカバリ(NB-Name-In)」というファイアウォールルールを有効にする必要がありました。このルールは、UDPポート137上のトラフィックを許可します。名前ルックアップがキャッシュされると、URLは適切にルーティングされます。これは、なぜ私は無効にした後、再びファイアウォールを有効にしたが働いて説明します

関連する問題