【问题标题】:ASP.NET5 | MVC6 project hosting using 80 portASP.NET 5 |使用 80 端口托管 MVC 6 项目
【发布时间】: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 托管存在类似问题,例如thisthis

我尝试执行以下操作:

  1. 禁用万维网发布服务
  2. 禁用 Web 部署代理服务
  3. 确保没有 SQL Server Reporting Services 和分支缓存服务
  4. 禁用 IIS
  5. 为防火墙中的 80 端口添加规则
  6. 通过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


【解决方案1】:

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

server.urls=http://localhost:80

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

server.urls=http://192.168.100.100:80

我认为您还可以通过用分号或逗号分隔多个 URL 来指定多个 URL:

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

【讨论】:

  • 是的,你是对的!非常感谢。这太容易了! :)
猜你喜欢
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 1970-01-01
  • 2018-04-28
  • 2022-10-16
  • 1970-01-01
相关资源
最近更新 更多