2012-03-30 7 views
0

私は、同じネットワーク上の複数のコンピュータにインストールされるwpfアプリケーションを作成しています。アプリケーションは他のアプリケーションと話すことになっていますので、私のアプリケーションでWCFサービスを実装しています。すべてがファイアウォールなしで素晴らしい作品です。その結果、ファイアウォールに例外を追加するためにいくつかのコードが欠けています。 wcfサービスのexeフルパスを取得

は、私がCMDに次のコードを実行するプログラムのファイアウォールに例外を追加するには(またはC#での過程で)

のnetshファイアウォール追加allowedprogram「C:\ users..etc \ MYPROGRAM。 exe "MyProgram ENABLE

問題は、exeが私のサービスをホストしているかどうかわかりません!ファイアウォールの例外を追加できるようにそれを見つけたいと思います。

答えて

0

私の唯一の選択肢は、そのポートをファイアウォールで開くことだと思います。それはまったく安全ではないと私は思う。それを行う方法は次のとおりです。

は、重複を避けるために、最初にそれを削除します。

のnetshをadvfirewallは、プロトコルにルール名=「説明をここに」DIR = = = 8732

のTCP次に、localportを削除ファイアウォール

それを追加します。

のnetshをadvfirewallは、プロトコル= TCPのlocalportで= 8732

012許可=アクションで= = "説明をここに" dirのファイアウォールルールの名前を追加します

今みんなが...助けを

0

どのように設定するかによって異なります。名前付きパイプを使用して実行可能ファイルを使用してWCFを使用することは可能です。しかし、ここから見て、あなたはIISを通してそれをホストしています。展開すると、「exe」はありません。

代わりに、プロジェクトは "dll"を生成します。このDLLは、既存のIISプロセスにロードされ、アプリケーションプール内で実行されます。このアプリケーションプールはWebサーバー(IIS)で実行され、設定によってはHTTPまたはHTTPSで実行される可能性があります。

HTTPはポート80で実行され、HTTPSはポート443(SSL)で実行されます。

+0

おかげで通信するために、そのポートを使用することができます。私はIISを使用していません。 WCFクラスライブラリを使用しています.WPFアプリケーションからWCFクラスライブラリへの参照を追加したため、wpfアプリケーションを起動するたびにサービスが起動します。 –

+0

IISを使用していない場合は、ServiceHost実際にサービスを開始するためにあなた自身の実行可能ファイルで実行します。デバッガから[WCFサービスホスト](http://msdn.microsoft.com/en-us/library/bb552363.aspx)でサービスを実行することを指しているようですが、これは製造。 – shambulator

関連する問題