【发布时间】:2016-03-25 13:33:38
【问题描述】:
在将其标记为重复之前,请通读。
我正在使用 Visual Studio 2015 中的简单 Web 托管选项,它通过 localhost:5000 端口托管默认模板 Web api。
请注意,我没有使用 IIS express,有很多关于 IIS 托管的问题。
我可以简单地使用http://localhost:5000/api/values 来使用它们。但是,当我尝试从 LAN 上的另一个系统使用此 api 时,使用适当的 IP 而不是 localhost,它根本无法连接并显示连接到 url 的错误。
您可以尝试轻松重现:
- 使用 Visual Studio 2015 创建 ASP .NET 5 Web api。
- 在运行解决方案时选择“Web”选项,而不考虑“IIS Express”。这将使 ASP .NET Web api 在端口 5000 上使用控制台。
- 现在我们可以通过点击:http://localhost:5000/api/values 来使用 web api
- 但是,如果我尝试通过 LAN 从另一个系统执行相同操作(将 localhost 更改为适当的 IP),我无法连接。
- 另外,如果我尝试通过 LAN 从另一个系统 ping 我的系统,我会得到适当的响应。
任何帮助将不胜感激。
【问题讨论】:
-
似乎拒绝所有访问,但来自
localhost。当您正确发布应用程序然后启动它时会发生什么?我敢打赌,它在受雇时不会这样。必须有一些配置开关以使其按照您想要的方式运行(即不要拒绝除 localhost 之外的所有人的访问) -
如果我使用 IIS 托管它,然后尝试通过 LAN 从远程计算机访问它,我仍然无法让它工作。在这种情况下,我收到消息“HTTP 错误 400。请求主机名无效”。
-
可能是因为该 HTTP 请求中
Host: ...字段的内容错误。尝试将其设置为localhost或<network ip>可能吗?总而言之,如果您使用/发布您的网络应用程序,那么这些无法访问的问题无论如何都会解决。 -
我正在使用网络 IP 地址,我可以 ping 该 IP。但是无法访问web api。
标签: c# .net iis asp.net-web-api localhost