【发布时间】:2026-02-09 06:05:01
【问题描述】:
我有一个应用程序,我试图在 VS2010 的 IIS Express 下在我的开发系统上运行,我需要使用端口 80,但我无法让它工作。我正在查找有关保留端口 80 的信息。 http://learn.iis.net/page.aspx/1005/handling-url-binding-failures-in-iis-express/
但即使这样做了,我仍然从 vs2010 收到一个错误,上面写着 “无法启动 IIS Express Web 服务器。端口 '80' 正在使用中。”
我不知道还能尝试什么。我使用 Process Hacker 跟踪端口 80,它似乎被运行在进程 ID 4 上的System 使用,这是 NT 内核和系统进程。我不知道这是否会阻止我使用该端口。我想这可能是因为 http.sys 持有该端口,所以没有其他人可以使用它?
通过修改C:\Users\[MyUser]\Documents\IISExpress\config\applicationhost.config 文件的默认绑定,我确实设法让 IIS Express 在端口 80 上运行,虽然我可以通过这种方式手动启动 IIS Express,但 VS 会出现错误,因为该绑定已经存在港口。所以我把它改回8080,使用VS2010中的按钮创建虚拟目录(我猜这与输入站点绑定相同)但是当我去调试应用程序时仍然出现错误。 VS2010 中是否有一些硬编码的东西不会让它在端口 80 上启动 IIS Express?
更新和修复:好的,所以我发现了更多需要检查的东西,我确实解决了我的问题,但还没有完全解决。一篇帖子建议确保我没有安装 SQL 报告服务,因为它可以在端口 80 上进行监控,我曾经安装过它,但现在没有了,这不是我遇到的问题。然而,我确实意识到我已经安装了 WebDeploy。它与来自Web Platform Installer 的VS2010 SP1 捆绑包捆绑在一起。这很好,因为我确实想要来自 WebDeploy 的客户端工具,但它还在我的系统上安装了代理,该代理在端口 80 上进行监视。我去了我的服务列表并停止了Web Deploy Agent Service。完成此操作后,我现在可以在 VS2010 中为 IIS Express 使用端口 80。
与在 IIS Express 的 80 端口上运行相关的新问题 但是我的应用程序是一个 MVC3 应用程序,我遇到了一个问题,因为 MVC3 根本没有捕获我的请求,所以它不是触发我的控制器操作或类似的东西,而是我的应用程序根目录中的一个 txt 文件可以到达,所以我知道 IIS Express 正在为我的站点提供服务。有人在 IIS Express 的 80 端口上运行 MVC3(我不知道它是否为 MVC3 独有)有任何问题吗?
【问题讨论】:
-
应用程序是否在另一个端口下成功运行?你确定你已经使用 reg_iis 命令注册了 asp.net 4 吗?你能得到一个简单的网络表单应用程序来运行吗?
-
它确实在另一个端口上运行,MVC 在这种情况下工作得很好。只是在端口 80 上,MVC 似乎不起作用。其他使用 .NET 4.0 的网站可以完美运行,所以不是这样。
-
这是为我提供的报告服务。
-
显而易见的问题,为什么不直接在 WIn7 之外使用本地 IIS 服务器?
-
因为 IIS7+ 的配置提供了 web.config 文件的集成,所以没有理由再将 IIS 安装在开发机器上。更容易使用 IIS Express 并将所有内容都包含在项目中,然后可以将整个站点设置提交到源代码管理。这使得部署、单元测试等更加简化。如果不需要,为什么还要在系统上提供额外的服务?
标签: asp.net-mvc visual-studio-2010 http asp.net-mvc-3 iis-express