C#Nancy.Hosting.Self不回答来自网络的请求,只回答localhost请求

时间:2018-02-21 21:40:42

标签: c# wpf visual-studio-2017 nancy windows-console

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

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

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

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

EDIT 禁用Windows防火墙!! 我还尝试了不同的主机配置,http://10.10.10.149:1234"作为主持人。我已经尝试了#34; http://+:1234,这个没有构建,它会抛出错误。

我还通过在powershell中运行一些命令来完全删除了hostConfigs并将ACL添加到系统中,如许多文章所述:

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

但是,只能从本地浏览器连接,而不能从其他网络位置连接。每当我尝试连接到通过rest api运行程序的机器时,我得到503服务不可用。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

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

我已经分享了我的经验以备不时之需。