C# 如何防止Windows防火墙消息弹出

C# 如何防止Windows防火墙消息弹出,c#,websocket,tcplistener,windows-firewall,C#,Websocket,Tcplistener,Windows Firewall,我有一个简单的websocket服务器应用程序(),用于与JavaScript通信。这里的想法是允许本地应用程序与浏览器通信。我正在为Windows7&8平台开发这个应用程序 我遇到的问题是,在初始运行期间,Windows防火墙显示阻止与公共域通信的安全警报。我的应用程序不与电脑外的任何资源通信,因此无论我们选择“取消阻止”还是“阻止”,应用程序都将工作 我的问题是,我们可以通过编程避免这种安全警告吗?如果电脑不允许防火墙访问,是否可以允许它在不弹出任何警告的情况下以静默方式阻止它 我正在使用创

我有一个简单的websocket服务器应用程序(),用于与JavaScript通信。这里的想法是允许本地应用程序与浏览器通信。我正在为Windows7&8平台开发这个应用程序

我遇到的问题是,在初始运行期间,Windows防火墙显示阻止与公共域通信的安全警报。我的应用程序不与电脑外的任何资源通信,因此无论我们选择“取消阻止”还是“阻止”,应用程序都将工作

我的问题是,我们可以通过编程避免这种安全警告吗?如果电脑不允许防火墙访问,是否可以允许它在不弹出任何警告的情况下以静默方式阻止它

我正在使用创建一个MSI包来分发应用程序。有没有办法在安装期间设置防火墙权限

基本思想是允许程序以最少的用户交互运行

提前谢谢

更新:

问题似乎出在SuperWebSocket中,它将套接字绑定到所有可用接口。类似这样的东西,

TcpListener _listener = new TcpListener(IPAddress.Any, 21000);
但是如果我用这样的东西

TcpListener _listener = new TcpListener(IPAddress.Loopback, 21000);

警告不再出现。我在Windows 8 PC上测试了这一点。

如果可以通过javascript绕过防火墙的功能,那么防火墙的原因是什么?当我们可以绕过防火墙对话框时,这不会导致各种感染情况吗?!它在本地通信,ie-socket在端口21000上运行,JavaScript连接到127.0.0.1:21000。防火墙只阻止对网络的访问,对吗?如果我没记错的话,防火墙是tcp和任何本地资源之间任何通信的拦截器。因此,依赖此传输的端口也会受到影响。@iZ88“防火墙只会阻止对网络的访问,对吗?”尽管您在本地通信……但重要的是端口21000。一旦它打开,任何人都可以从外部访问它。所以防火墙希望您知道并提示,因为它不能保证总是在本地访问。进一步,规则开始起作用……您可以使用FirewallAPI按照答案中的建议以编程方式进行调整,也可以查看