C# 打开Windows服务的防火墙
我有一个C#服务应用程序,需要由xml rpc客户端从外部访问。它通过HttpListenerRequest自托管;不是IIS托管的。(不能要求服务器启用IIS) 当服务器防火墙关闭或应用程序使用的端口打开时,它可以在客户端正常工作。但是,如果我创建防火墙例外以通过其名称启用应用程序;无法从客户端pc访问该应用程序。(我已尝试手动启用该服务,并从安装程序中添加代码以启用该应用程序。) 我希望启用应用程序的原因;与端口不同的是,端口可能会更改。(我的应用程序将在默认端口不使用时检查可用端口的范围)。环顾四周,似乎任何不完全“自托管”的服务都无法启用防火墙C# 打开Windows服务的防火墙,c#,windows,service,firewall,C#,Windows,Service,Firewall,我有一个C#服务应用程序,需要由xml rpc客户端从外部访问。它通过HttpListenerRequest自托管;不是IIS托管的。(不能要求服务器启用IIS) 当服务器防火墙关闭或应用程序使用的端口打开时,它可以在客户端正常工作。但是,如果我创建防火墙例外以通过其名称启用应用程序;无法从客户端pc访问该应用程序。(我已尝试手动启用该服务,并从安装程序中添加代码以启用该应用程序。) 我希望启用应用程序的原因;与端口不同的是,端口可能会更改。(我的应用程序将在默认端口不使用时检查可用端口的范围)
有人知道这方面的解决方法吗 不确定语法,但我认为您必须使用以下内容:
netsh http add urlacl url=http://www.contoso.com:80/MyUri user=DOMAINE\utilisateur listen=yes
请尝试为您的服务将SID type设置为无限制
尽管该命令也允许值NONE,但该设置意味着不能在防火墙规则中使用该服务,如下所述。默认情况下,Windows中的大多数服务配置为不受限制。如果将SID类型更改为受限,则服务可能无法启动。建议您仅在要在防火墙规则中使用的服务上更改SID类型,并将SID类型更改为“无限制”
它在页面中说明如何使用该命令
sc sidtype <Type> <ServiceName>
sc-sidtype
然而,对于我来说,sc工具本身表示要使用以下内容:
sc sidtype <ServiceName> <Type>
sc-sidtype
也许服务也必须在“网络服务”帐户下运行。我并没有完全让我的服务运行起来。编辑:而不是这个。这将授予程序保留端口并开始监听端口的权限。他已经让服务全面运行并收听。正是防火墙阻止了对服务的传入请求。