繁体   English   中英

C# Nancy.Hosting.Self 不响应来自网络的请求,只响应本地主机请求

[英]C# Nancy.Hosting.Self doesn't answer to requests from network, only to localhost request

我正在尝试将 nancy 自托管集成到我的 wpf 项目中,当我启动我的程序时,我能够从本地浏览器连接到 rest api,但无法从另一台计算机连接。

HostConfiguration hostConfigs = new HostConfiguration();
hostConfigs.UrlReservations.CreateAutomatically = true;

NancyHost host = new NancyHost(hostConfigs, new Uri("http://localhost:1234"));
host.Start();

有没有办法可以将 Uri 设置为通配符,就像在其他内置网络服务器中一样, 0.0.0.0 或 + ?

编辑Windows 防火墙已禁用! 我还尝试了不同配置的主机,以http://10.10.10.149:1234 " 作为主机。我尝试了 " http://+:1234 ,这个没有构建,它抛出错误。

我还完全删除了 hostConfigs 并通过在 powershell 中运行一些命令将 ACL 添加到系统中,就像许多文章中建议的那样:

netsh http add urlacl url="http://+:12345/" user="Everyone"

尽管如此,只能从本地浏览器连接,不能从其他网络位置连接。 每当我尝试连接到通过 rest api 运行程序的机器时,我都会收到 503 Service Unavailable。

您需要将其更改为"http://+:1234"以绑定到所有网络接口。

解决方案

尽管我的防火墙已完全禁用,但导致问题的是防火墙。 我在这篇文章中找到了解决方案: C# HttpListener and Windows Firewall

我需要做的就是将系统程序的规则添加到防火墙。 如果有人遇到这个问题,这个解决方案对我有用。 我现在也可以从另一个 LAN 访问 api,所以我想它可以从任何远程 IP 工作。

我遇到了类似的问题。 我搜索了很多讨论,但没有答案。 然后我找到了以前的消息。 我为我工作。

这是一个防火墙问题。 和解决方案;

1- 进入防火墙设置 2- 入站防火墙规则 3- 添加新规则 4- 连接点(TCP / UDP) 5- TCP 6-(输入端口号) 7- 允许连接

我已经分享了我的经验,以防有人需要它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM