Azure Windows Server 2016上的ASP.NET5 CLR网站正在运行,但在浏览器中找不到404

Azure Windows Server 2016上的ASP.NET5 CLR网站正在运行,但在浏览器中找不到404,asp.net,.net,asp.net-mvc,azure,windows-server-2016,Asp.net,.net,Asp.net Mvc,Azure,Windows Server 2016,我正在尝试在Azure上托管的Windows Server 2016实例上运行一个示例ASP.NET5 MVC应用程序。所有的指示器都显示应用程序在服务器上运行良好,但是当我尝试浏览URL(使用服务器的主机名或公共IP)时,我得到了404。找不到错误 这些端口在Azure和防火墙中是开放的 该应用程序在Microsoft.Net.Http.Server.Weblistener上运行 运行时为clr-1.0.0-beta5 x64。我已验证运行时是否已正确安装并正在使用 我已经从VS2015发布

我正在尝试在Azure上托管的Windows Server 2016实例上运行一个示例ASP.NET5 MVC应用程序。所有的指示器都显示应用程序在服务器上运行良好,但是当我尝试浏览URL(使用服务器的主机名或公共IP)时,我得到了404。找不到错误

  • 这些端口在Azure和防火墙中是开放的
  • 该应用程序在Microsoft.Net.Http.Server.Weblistener上运行
  • 运行时为clr-1.0.0-beta5 x64。我已验证运行时是否已正确安装并正在使用
  • 我已经从VS2015发布了应用程序,并手动传输到服务器,我使用自动生成的命令“web.cmd”运行它,我得到一个整洁的输出,上面写着:

当我在本地开发人员机器上以同样的方式运行应用程序时,我得到了同样的输出,它可以浏览localhost:80以访问网站

对我来说,这表明

  • 应用程序运行正常
  • 端口配置正确(当我关闭Web服务器时,我会收到不同的错误ERR\u CONNECTION\u TIMED\u OUT,而不是404)
  • 我的猜测是WebListener服务器有问题,没有正确地将传入的请求路由到我的应用程序,或者我的MVC代码有问题(尽管它在本地主机上工作正常)

    对于一个相当模糊的问题,我很抱歉,我愿意接受所有的想法和意见,请随时提出进一步的问题,以便我能提供更多的信息

    干杯,
    Niko

    正如@Rob和@Amy所指出的,问题在于WebListener对地址只有一个绑定。当我尝试使用我的服务器主机名浏览它时,我得到了404未找到

    解决方案是将hosting.ini中的--server.url从更改为我的正确主机名。还可以在此处找到有关答案的更多信息:


    (stackoverflow.com)

    正如@Rob和@Amy所指出的,问题在于WebListener只有地址的绑定。当我尝试使用我的服务器主机名浏览它时,我得到了404未找到

    解决方案是将hosting.ini中的--server.url从更改为我的正确主机名。还可以在此处找到有关答案的更多信息:


    (stackoverflow.com)

    访问远程站点时,您将无法使用
    localhost
    。我不知道解决方案是什么,但这可能就是问题所在。@Amy我的措辞一定很糟糕-当然,我没有试图通过本地主机地址连接到我的Azure服务器,我有一个IP和一个主机名。我会试着编辑一下OP来澄清一下。好吧,如果你得到的是404,那不是防火墙的问题。如何设置MVC路由?上面
    web.cmd
    的输出表明它正在监听
    http://localhost:80/
    。Windows(至少在IIS中)中的绑定非常具体,因此
    localhost:80
    不一定与
    127.0.0.1:80
    IpAddressOfMachine:80
    相同。您对@Amy的评论表明您正试图通过另一个IP/主机名进行连接,
    web.cmd
    是否为这些设置了绑定?@Rob非常感谢,这确实是我的问题。我将自动生成的hosting.ini文件改为--server URL,改为我的主机名,而不是localhost,现在可以正常工作了。谢谢你的帮助。我可以将评论标记为答案吗?访问远程站点时,您将无法使用
    localhost
    。我不知道解决方案是什么,但这可能就是问题所在。@Amy我的措辞一定很糟糕-当然,我没有试图通过本地主机地址连接到我的Azure服务器,我有一个IP和一个主机名。我会试着编辑一下OP来澄清一下。好吧,如果你得到的是404,那不是防火墙的问题。如何设置MVC路由?上面
    web.cmd
    的输出表明它正在监听
    http://localhost:80/
    。Windows(至少在IIS中)中的绑定非常具体,因此
    localhost:80
    不一定与
    127.0.0.1:80
    IpAddressOfMachine:80
    相同。您对@Amy的评论表明您正试图通过另一个IP/主机名进行连接,
    web.cmd
    是否为这些设置了绑定?@Rob非常感谢,这确实是我的问题。我将自动生成的hosting.ini文件改为--server URL,改为我的主机名,而不是localhost,现在可以正常工作了。谢谢你的帮助。我可以将评论标记为答案吗?

    info    : [Microsoft.Net.Http.Server.WebListener] Start
    info    : [Microsoft.Net.Http.Server.WebListener] Listening on prefix: http://localhost:80/
    Started