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。
我尝试执行以下操作:
- 禁用万维网发布服务
- 禁用 Web 部署代理服务
- 确保没有 SQL Server Reporting Services 和 Branch Cache Service
- 正在禁用 IIS
- 在防火墙中添加端口 80 的规则
- 通过其
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
有一个 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。
我尝试执行以下操作:
- 禁用万维网发布服务
- 禁用 Web 部署代理服务
- 确保没有 SQL Server Reporting Services 和 Branch Cache Service
- 正在禁用 IIS
- 在防火墙中添加端口 80 的规则
- 通过其
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