.net HttpSelfHostServer(System.Web.Http.SelfHost)无法在特定计算机上设置IPv4侦听器

eufgjt7s  于 2022-11-19  发布在  .NET
关注(0)|答案(2)|浏览(120)

我有一个使用HttpSelfHostServer处理客户端请求的Windows应用程序(.NET Framework 4.8)。

string address = "0.0.0.0";
            int port = 8550;
            var route = "Test/1.0/{controller}";
            var baseAddress = new Uri(String.Format("http://{0}:{1}", address, port));
            var config = new HttpSelfHostConfiguration(baseAddress);
            config.Routes.MapHttpRoute($"Test_{port}", route, new { });
            var server = new HttpSelfHostServer(config);
            server.OpenAsync();
            servers.Add(server);

该应用程序监听所有可用的网卡,多年来一直工作正常。问题是,我现在有一台电脑,它不工作!该应用程序有相同的assamblies加载,并使用Windows 10与最新的更新。
在应用程序运行正常的计算机上,netstat显示以下侦听器;[在此处输入图像描述]

C:\Users\admincod>netstat -na | find "8550"
  TCP    0.0.0.0:8550           0.0.0.0:0              LISTENING
  TCP    [::]:8550              [::]:0                 LISTENING

但在电脑上,它不工作,它只会显示后来的职位

TCP    [::]:8550              [::]:0                 LISTENING

尝试重新安装网络驱动程序并禁用IPv6。我还尝试禁用防火墙,但应该没有必要,因为它只是一个侦听器?
此致
罗贝尔

093gszye

093gszye1#

花了一段时间,但最后我找到了解决我的问题的办法。
使用netsh时,我发现在IPv4上没有任何监听功能

C:\WINDOWS\system32>netsh http show iplisten

IP addresses present in the IP listen list:
-------------------------------------------

    ::

解决方案是简单地添加一个新记录,如

C:\WINDOWS\system32>netsh http add iplisten ipaddress=0.0.0.0

IP address successfully added
eyh26e7m

eyh26e7m2#

在防火墙中创建新的传入连接规则。使用端口选项和TCP协议。选择域、公用和专用。输入名称。
就这样

相关问题