.net アプリで実行されている自己ホスト型の WCF サービスがあります。
ファイアウォールが正しく構成されている場合、サービスは正常に機能します。ただし、アプリの初回実行時に追加された既定の規則は正しく構成されておらず、ユーザーによる変更が必要です。アプリがマシンで最初に実行されると、「Windows ファイアウォールがこのプログラムの一部の機能をブロックしました」というメッセージを含む「Windows セキュリティ警告」ダイアログが表示され、「アクセスを許可する」ように求められます。ユーザーが [アクセスを許可する] を選択すると、Windows はアプリケーションの例外をファイアウォールに追加します。
上記の動作はすべて期待どおりであり、まさに私が望んでいるものです。
問題は、ファイアウォールに追加された規則が正しくなく、WCF サービスが正しく機能しないことです。ルール プロパティの [プログラムとサービス] タブに追加されたルール [このプログラム] に、WCF 自己ホスト型 exe が一覧表示されます。これは私には適切に思えます。
ただし、この設定を「指定された条件を満たすすべてのプログラム」に変更すると、ルールは正常に機能します。
それで、私の質問は2つの部分に分かれています。
a) EXE へのトラフィックを正しく明示的にサポートしているのに、このルールによってアプリへのトラフィックがブロックされるのはなぜですか?
b) 問題を解決するにはどうすればよいですか? アプリで何かを変更して、exe に制限なしでルールを追加したり、exe へのトラフィックを正しく許可したりできますか?
ご協力いただきありがとうございます。