私は、ユーザーのデスクトップ上でローカルに実行されるWindowsフォームアプリケーションを持っています。インターネットにアクセスする唯一の方法は、System.Diagnostics.Process.Start(url)を実行してユーザーの既定のブラウザーを起動し、さまざまなURL(更新の確認、連絡先など)を指定することです。また、メニュー項目やボタンをクリックして明示的に要求しなくても、このようなことは起こりません。Windowsファイアウォールがアプリケーションをブロックする原因は何ですか?
私のマシンでは、プログラムの起動時にWindowsファイアウォールがプログラムを「保護するために」いくつかの機能をブロックしているとの警告メッセージが表示されることがありました。 Visual Studioでプログラムを実行するときにこの警告が表示されることがあります(vshostがネットワークからブロックされているという警告ダイアログが表示される)。それはいつも起こるわけではありません。
これは自分のパソコンで起こっているとは聞いていませんが、そうではありません。それはあまり技術的に精通していないユーザーにとっては恐ろしい警告です。可能であれば、それを排除する方法を理解したいと思います。
私のプログラムはこの警告を引き起こす可能性がありますか?
編集:スタートアップ時に私のプログラムがやっている珍しいことは、Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBaseクラスを使用して単一のインスタンスアプリケーションを実行することです。私はこれが新しいインスタンスを検出し、それらをリダイレクトするための裏側のいくつかのスレッドマジックを行うことを知っています。それは何らかの理由でネットワーク上で聞くことが可能ですか?
これは問題です。明らかにポートをリッスンしていることはありません。この警告は、Visual Studioとインストールされた実行可能ファイルを実行するときに発生します。 –
少し珍しいことの1つは、Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBaseを使用して単一のインスタンスアプリケーションを実行することです。これはシーンの裏側にあるスレッドを処理します。私はそれがリモートプロセスのものをネットワーク上で聞くことができるのだろうかと思います。 –
コマンドプロンプトを開き、プログラムが実行されている間に "netstat -b"を実行して、すべてのポートでリッスンしているかどうかを確認します。 – Greg