【发布时间】:2016-01-12 16:20:52
【问题描述】:
有一个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 错误 404。未找到请求的资源。
响应头是:
连接:关闭
内容长度:315
内容类型:文本/html;
charset=us-ascii 服务器:Microsoft-HTTPAPI/2.0
好的,我发现WAMP/Apache 托管存在类似问题,例如this 和this。
我尝试执行以下操作:
- 禁用万维网发布服务
- 禁用 Web 部署代理服务
- 确保没有 SQL Server Reporting Services 和分支缓存服务
- 禁用 IIS
- 为防火墙中的 80 端口添加规则
- 通过
PID杀死tasklist /M httpapi.dll命令的所有进程(之后netstat -ano命令不再监听80 端口),然后启动应用程序。
但这并没有帮助。
注意:
这是在第 6 条之后启动应用程序后tasklist /M httpapi.dll 命令的结果:
这是一个 PID 为 1800 的进程:
什么以及为什么会阻止 80 端口?
我怎样才能解决这个问题?
谢谢!
【问题讨论】:
-
使用 MVC 5,您必须以管理员身份运行 Visual Studio 以获取特定范围内的端口(包括 80)。你试过吗?
-
@MuhammadRehanSaeed 是的,我总是以管理员身份运行它。
标签: c# hosting asp.net-core asp.net-core-mvc port80