我有一个在用户桌面上本地运行的 Windows 窗体应用程序。它访问 Internet 的唯一方法是执行 System.Diagnostics.Process.Start(url) 来启动用户的默认浏览器并将其指向各种 URL(检查更新、联系我们等)。如果用户没有通过单击菜单项或按钮明确请求,这一切都不会发生。
在我的机器上,我偶尔会在启动程序时收到 Windows 防火墙警告消息,说 Windows 防火墙“阻止了程序的某些功能”以保护机器。在 Visual Studio 中运行我的程序时,我偶尔也会收到此警告(警告对话框显示 vshost 已被网络阻止)。它不会一直发生。
我没有从我的任何客户那里听说他们的 PC 上发生过这种情况,但这并不意味着没有。对于不太懂技术的用户来说,这是一个有点可怕的警告,所以我想弄清楚如果可能的话如何消除它。
我的程序可能会做什么来触发此警告?
编辑:我的程序在启动时唯一有点不寻常的事情是它使用 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase 类来强制执行单实例应用程序。我知道这在幕后做了一些线程魔术来检测新实例并重定向它们。是否有可能出于某种原因在网络上收听?