【发布时间】:2015-11-28 20:11:33
【问题描述】:
我想通过同一网络中的另一台 PC 上托管的 ASP.NET 5 应用程序连接到我的 Kestrel 服务器。可能吗?我可以从 cmd ping 我的计算机,但是当我尝试从 Web 浏览器连接时出现“连接超时”(我输入:“http://{my_kestrel_ip}:5000/”)。
【问题讨论】:
标签: c# asp.net-mvc kestrel-http-server
我想通过同一网络中的另一台 PC 上托管的 ASP.NET 5 应用程序连接到我的 Kestrel 服务器。可能吗?我可以从 cmd ping 我的计算机,但是当我尝试从 Web 浏览器连接时出现“连接超时”(我输入:“http://{my_kestrel_ip}:5000/”)。
【问题讨论】:
标签: c# asp.net-mvc kestrel-http-server
hosting.ini 不适合我们。我必须将它添加到 project.json 文件中。我相信在 Beta8 之后,hosting.ini 文件将被弃用。
--server.urls http://0.0.0.0:5000
或者我更喜欢以下我认为不那么令人困惑的内容。
--server.urls http://*:5000
所以你最终会在你的 project.json 中得到类似的东西。
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://0.0.0.0:5000",
"ef": "EntityFramework.Commands"
},
【讨论】:
在您的项目文件夹中,您应该有一个名为hosting.ini 的文件。默认情况下,在该文件中,您应该有这样的内容:
server=Kestrel
server.urls=http://localhost:5000
您需要让 HTTP 服务器侦听您的公共 IP 地址以及 localhost。为此,您可以添加一个额外的地址,用分号分隔它们:
server.urls=http://localhost:5000;http://{my_kestrel_ip}:5000
【讨论】:
刚刚做了一个似乎有效的快速测试。 在 project.json 文件旁边创建一个 hosting.json 文件。
hosting.json:
{
"server.urls": "http://localhost:5000;http://192.168.1.4:5000"
}
project.json:
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel --config hosting.json"
},
在命令提示符下运行dnx web,输出:
Hosting environment: Production
Now listening on: http://localhost:5000
Now listening on: http://192.168.1.4:5000
Application started. Press Ctrl+C to shut down.
你会得到一个防火墙提示,接受它,然后tadaaa!!您可以从 LAN 和 localhost 访问该站点。
【讨论】: