15

ClickOnce アプリケーションがWindows ファイアウォールでスムーズに動作しないようです。

私は 2 年間、ClickOnce 配置をうまく使用してきました。これは、企業が Windows 7 にアップグレードした現在、つまずきにぶつかっています。各ユーザーの構成は次のように変更されています。

  • 各ユーザーのマシンで Windows ファイアウォールが有効になっている
  • ユーザーは自分のマシンに対する管理者権限を持っていません。

ClickOnce の仕組みは次のとおりです。 ClickOnce アプリケーションが更新されるたびに、実行可能ファイルが新しいディレクトリにコピーされます。このディレクトリには、マシンで生成された名前があります。(たとえば、「C:\Users\andrew.shepherd\AppData\Local\Apps\2.0\GTTG5EJB.AVG\jc69hir.e45\watershedclient.exe」にデプロイされる場合があります)。

Windows ファイアウォールは、既定で、アプリケーションが着信呼び出しを受け入れるのをブロックします。ただし、アプリケーションが最初にこれを試みると、Windows ファイアウォールは、管理者がアプリケーションの例外を作成し、必要な特権を与えることを許可するダイアログを表示します。

問題は、Windows ファイアウォールがアプリケーション レコードを完全なファイル パスとして保存することです。ClickOnce アプリケーションが更新されるたびに、別のディレクトリにインストールされます。したがって、Windows ファイアウォールはこれをまったく新しいアプリケーションと見なします。管理者は、この更新プログラムが更新されるすべてのマシンに対して、この更新プログラム用のファイアウォールを構成する必要があります。これは、ClickOnce テクノロジを使用する理由全体を実質的に無効にします。

これは2005 年に問題として報告され、 Microsoft は問題を認識し、解決策がないことを認めました。

この問題は解決されましたか?

4

1 に答える 1

4

問題は、Windowsファイアウォールがアプリケーションレコードをフルファイルパスとして保存することです。ClickOnceアプリケーションが更新されるたびに、別のディレクトリにインストールされます。したがって、Windowsファイアウォールはそれをまったく新しいアプリケーションと見なします。

ここでの1つのアプローチは、フルパスではなくEXEの名前のみを指定するように、ルール名を編集することです。たとえば、ローカルにデプロイされた「Hello World」アプリケーションは、ClickOnceによってこのパスにインストールされました。

C:\Users\jdoe\AppData\Local\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\hell..tion_32be098505965508_0001.0000_ad51d60d7593998b\HelloWorld.exe

また、「HelloWorld.exe」のみに適用されるファイアウォールルールを使用できます。ただし、ルールがその名前のすべてのアプリケーションに適用されるという点で、セキュリティホールが作成されます。パスの一部を指定することで、ルールをもう少し改良できます。

%LOCALAPPDATA%\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\*\HelloWorld.exe

環境変数も使用したことに注意してください。これは、ファイアウォールルールをテストする目的で拡張されているようです。

于 2013-02-15T13:55:41.743 に答える