基本的な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サイトをインストーラにパッケージ化することです。彼らはそれをもう一度やり直すことさえできないかもしれません。
ありがとうございます
既に試しました。 TCP 80のインバウンドとアウトバウンドのルールを追加することもhttpに影響します。 – HomeAlone