ASP.NET5 | MVC6项目托管使用80端口

ASP.NET5 | MVC6 project hosting using 80 port

有一个 MVC 6 (beta 7) 项目。我通过 VisualStudio 2015 发布向导将其发布到本地文件夹(在 Windows Server 2012 上)。这是 hosting.ini 文件:

server=Microsoft.AspNet.Server.WebListener
server.urls=http://localhost:80

这是在 project.json:

中启动服务器的命令
"web": "Microsoft.AspNet.Hosting --config hosting.ini",

我通过从本地文件夹执行由发布向导生成的 web.cmd 来启动服务器。

站点在本地机器上运行良好 (http://localhost)。

好了,现在是最有意思的。我尝试从外部计算机打开它并查看

HTTP Error 404. The requested resource is not found.

响应headers是:

Connection:close

Content-Length:315

Content-Type:text/html;

charset=us-ascii Server:Microsoft-HTTPAPI/2.0

好的,我在 WAMP/Apache 主机上发现了类似的问题,例如 this and this

我尝试执行以下操作:

  1. 禁用万维网发布服务
  2. 禁用 Web 部署代理服务
  3. 确保没有 SQL Server Reporting Services 和 Branch Cache Service
  4. 正在禁用 IIS
  5. 在防火墙中添加端口 80 的规则
  6. 通过其PID杀死来自tasklist /M httpapi.dll命令的所有进程(之后没有来自netstat -ano命令的80端口监听)然后启动应用程序。

但这并没有帮助。

注: 这是在第 6 条之后启动应用程序后 tasklist /M httpapi.dll 命令的结果:

这是一个 PID 为 1800 的进程:

什么以及为什么会阻塞 80 端口?

我该如何解决这个问题?

谢谢!

我认为问题出在您对站点的绑定。在你的配置中你说:

server.urls=http://localhost:80

这意味着只有当您的浏览器 URL http://localhost window 时,网站才会回复您,但是从外部 URL 您可以使用 http://192.168.100.100 例如。尝试更改 URL 以匹配它(显然使用您自己的 IP 地址或机器名称):

server.urls=http://192.168.100.100:80

我认为您还可以指定多个 URL,方法是用分号或逗号分隔它们:

server.urls=http://localhost:80;http://server:80;http://192.168.100.100:80