Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打开Windows服务的防火墙_C#_Windows_Service_Firewall - Fatal编程技术网

C# 打开Windows服务的防火墙

C# 打开Windows服务的防火墙,c#,windows,service,firewall,C#,Windows,Service,Firewall,我有一个C#服务应用程序,需要由xml rpc客户端从外部访问。它通过HttpListenerRequest自托管;不是IIS托管的。(不能要求服务器启用IIS) 当服务器防火墙关闭或应用程序使用的端口打开时,它可以在客户端正常工作。但是,如果我创建防火墙例外以通过其名称启用应用程序;无法从客户端pc访问该应用程序。(我已尝试手动启用该服务,并从安装程序中添加代码以启用该应用程序。) 我希望启用应用程序的原因;与端口不同的是,端口可能会更改。(我的应用程序将在默认端口不使用时检查可用端口的范围)

我有一个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

也许服务也必须在“网络服务”帐户下运行。我并没有完全让我的服务运行起来。编辑:而不是这个。

这将授予程序保留端口并开始监听端口的权限。他已经让服务全面运行并收听。正是防火墙阻止了对服务的传入请求。