【问题标题】:Is it possible to start host 0.0.0.0:port with nancy?是否可以使用 nancy 启动主机 0.0.0.0:port?
【发布时间】:2016-08-07 06:58:02
【问题描述】:

我正在尝试使用 Nancy Host 以 IP https://0.0.0.0:9000 启动主机,但我收到 System - The request is not supported 异常。下面是我的代码。

string strHostProtocol = "https";
string strHostIP = "0.0.0.0";
string strHostPort = "9000";

var url = strHostProtocol + "://" + strHostIP + ":" + strHostPort;
this.host = new NancyHost(new Uri(url));
this.host.Start();

它将允许我启动其他 IP 地址,例如 127.0.0.1:9000192.168.100.10:9000 等,但不能启动 0.0.0.0:9000。我读过这是一个有效的IP。但我的问题是为什么不允许开始?此 IP 是否保留用于任何目的?

更新


这里的唯一目的是,我试图通过提供的公共 IP 访问内部 IP。但是Nancy即使以端口启动内部IP,当通过公共IP提供请求时,它也不会识别。不确定这是否可以实现。

【问题讨论】:

  • 根据 TCP/IP 设计,0.0.0.0 表示本地机器上的“所有”或“每个”ipv4 地址,因此 0.0.0.0 是某种元地址不可路由。如果您将 0.0.0.0 设置为路由目标,则路由明智,这意味着它是每个其他网络地址的路由项。
  • @ʞaʎess.. 我正在尝试这个,因为我已经将系统的 IP 作为公共 IP,并且我已经使用 9000 端口启动了本地 IP。我可以使用公共 IP 远程登录这个端口,但是我无法通过互联网浏览相同的内容。我听说以0.0.0.0 开头会很有帮助..
  • 您的意思是要将 nancy 绑定到所有接口,例如分配给本地机器的每个可能的 IP 地址?如果是这样,您可以尝试将“0.0.0.0”替换为通配符“+”。
  • @ʞaʎess 哦,好吧..让我试试..
  • 如果您使用某种 NAT,您的主机将接收内部 IP 上的请求,它甚至不知道原始请求被发送到公共 IP。如果不使用 NAT,windows 可能会阻止请求,至少 ARP 不起作用。也许你可以用wireshark检查是否收到了什么?

标签: c# ip ip-address nancy


【解决方案1】:

我想通了:

HostConfiguration hostConf = new HostConfiguration();
hostConf.RewriteLocalhost = true;
var apiHost = new NancyHost(hostConf, new Uri("http://localhost:8080"));
apiHost.Start();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多