【问题标题】:ASP.NET Core test: site can't be reachedASP.NET Core 测试:无法访问站点
【发布时间】:2016-05-26 12:17:03
【问题描述】:

刚刚在 ubuntu server 14.4.4 https://www.microsoft.com/net/core#ubuntu 上安装了 dotnet core 的最新位 测试 webapp (dotnet run) 在端口:5000 上运行;但是,当尝试从主机上的网络浏览器运行时(ubuntu-server 是 vm 客户端机器),我收到无法访问站点的消息。我已经在 Ubuntu 服务器上打开了 5000 端口。

我必须承认我在这个 ubuntu 服务器上也安装了 nginx(并且成功地在端口 80 上获取了默认的 nginx 页面 - ASP.NET webapp 也不起作用,我尝试关注https://docs.asp.net/en/latest/publishing/linuxproduction.html 可能配置不正确)。

但是,为了仅使用 kestrel(在端口 5000 上)进行测试,我停止了 nginx 网络服务器。第一件事。

有人知道在端口:5000 上使用红隼测试会出现什么问题吗?

【问题讨论】:

    标签: ubuntu asp.net-core-1.0 coreclr


    【解决方案1】:

    Kestrel Web 服务器默认侦听 localhost:5000,因此如果您没有更改它侦听的主机,您将无法从远程计算机连接到它(或在你的情况下,主机)。

    您可以通过多种方式将 Kestrel 配置为侦听不同的主机或端口。最简单的实现是在Main 方法中的.UseKestrel() 之后添加行.UseUrls("http://0.0.0.0:5000")。这将使应用程序使用端口 5000 侦听所有可用的 IP 地址。

    更新

    正如下面svick 所指出的,.UseUrls("http://*:5000") 也将允许您使用 IPv6 地址。

    【讨论】:

    • 好点,我没有考虑 IPv6。我已经更新了我的答案以包含它。
    • 非常感谢大家。现在就像一个魅力。当我想使用 nginx 作为反向代理时,我可以将 .UseUrls("http://*:5000") 留在主文件中(或者因为我通过 nginx 进入系统,我想这已经过时了)?谢谢。
    • 只要 nginx 能连接到 localhost:5000,我想应该可以去掉UseUrls("http://*:5000")
    • 我试过了,确实它在没有 UseUrls 的情况下工作。当通过 nginx 时。对于生产来说,这是完美的。然而,为了测试,直接与红隼交谈会很方便。谢谢。
    猜你喜欢
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2019-12-27
    • 2020-10-24
    • 1970-01-01
    相关资源
    最近更新 更多