【问题标题】:ASP.NET 5 Kestrel connect within LANASP.NET 5 Kestrel 在局域网内连接
【发布时间】: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


【解决方案1】:

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"
    },

【讨论】:

  • 是的,我已将我的 URL 添加到命令描述中,而不是“hosting.ini”文件中。但是添加这个额外(不是本地主机)URL 的想法正是我想要的。
  • 对不起。澄清地址字段中的 0.0.0.0 将绑定到所有 IP 地址,而不仅仅是 localhost。这个周末我发现 * 也可以工作,这让我不会那么困惑。
  • 这应该是公认的答案。有效。此外,请参阅this question 了解一些故障排除步骤。
【解决方案2】:

在您的项目文件夹中,您应该有一个名为hosting.ini 的文件。默认情况下,在该文件中,您应该有这样的内容:

server=Kestrel
server.urls=http://localhost:5000

您需要让 HTTP 服务器侦听您的公共 IP 地址以及 localhost。为此,您可以添加一个额外的地址,用分号分隔它们:

server.urls=http://localhost:5000;http://{my_kestrel_ip}:5000

【讨论】:

    【解决方案3】:

    刚刚做了一个似乎有效的快速测试。 在 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 访问该站点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多