无法通过 LAN 使用自托管(使用控制台)asp .net 5 web api

Can't consume self hosted (using console) asp .net 5 web api over LAN

在将其标记为重复之前,请仔细阅读。

我正在使用来自 Visual Studio 2015 的简单网络托管选项,它通过 localhost:5000 端口托管默认模板网站 api。

请注意,我没有使用 IIS Express,有很多关于 IIS 托管的问题。

我可以简单地使用 http://localhost:5000/api/values 来消耗它们。但是,当我尝试从 LAN 上的另一个系统使用此 api 时,使用适当的 IP 而不是本地主机,它根本无法连接并显示连接到 url 的错误。

您可以尝试轻松重现:

  1. 使用 Visual Studio 2015 创建一个 ASP .NET 5 网站 api。
  2. Select "web" 选项尽管 "IIS Express" 而 运行 解决方案。这将 ASP .NET web api 在端口 5000 上使用控制台。
  3. 现在我们可以通过点击 : http://localhost:5000/api/values
  4. 使用网络 api
  5. 但是,如果我尝试通过 LAN 从另一个系统执行相同的操作(将本地主机更改为适当的 IP),我将无法连接。
  6. 此外,如果我尝试通过 LAN 从另一个系统 ping 我的系统,我会得到适当的响应。

如有任何帮助,我们将不胜感激。

编辑project.json文件,找到"commands"部分,编辑"web"键值如下:

"web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://*:5000"

这将导致 Kestrel 侦听来自所有接口的所有地址。您还应该检查防火墙设置; 5000 被阻止了吗?