IIS 错误,无法在网络服务器上开始调试
Posted
技术标签:
【中文标题】IIS 错误,无法在网络服务器上开始调试【英文标题】:IIS error, Unable to start debugging on the webserver 【发布时间】:2013-09-08 06:10:55 【问题描述】:我想在本地机器上从 IIS 运行我的应用程序。我创建了虚拟目录并将应用程序添加到其中,并在应用程序的属性文件夹中选中了单选按钮“使用本地 IIS Webserver”。然后我开始运行我的应用程序,但出现以下错误:
无法在网络服务器上开始调试。有关常见配置错误,请参阅帮助。在调试器之外运行网页可能会提供更多信息。
确保服务器正常运行。通过执行调试验证 web.config 中没有语法错误。在不调试的情况下启动。您可能还需要参考在线文档中的 ASP.NET 和 ATL Server 调试主题.
如何摆脱这个错误?
我在 Windows 7 和 IIS 7.5 上使用 Visual Studio 2010。
【问题讨论】:
Unable to start debugging on the web server. Could not start ASP.NET debugging VS 2010, II7, Win 7 x64的可能重复 我在 web.config 中添加了以下设置我有同样的问题。问题是我没有安装 Framework 4,而我已经安装了 Framework 4.5 因此,如果没有 ISAPI 4.0,就无法实现 MIME 类型的 ASPX。
要对其进行排序,我可以先卸载 4.5,然后添加 4.0,这会造成麻烦,或者手动将特定文件添加到 IIS 根目录中的 ISAPI 限制和 ISAPI 过滤器。 我需要获取位于 C:\Windows\Microsoft.NET\Framework\ 和 C:\Windows\Microsoft.NET\Framework64\ 中的 aspnet_filter.dll 和 aspnet_isapi.dll
添加这些文件后,一切都会好起来的。
【讨论】:
【参考方案2】:其他解决方案都不适合我。我使用以下命令解决了这个问题。
对于 32 位机器:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis –i
对于 64 位机器:
C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis –i
问题是因为 web.config 文件没有正确安装。
【讨论】:
【参考方案3】:感谢所有答案,但没有一个对我有用。虽然他们中的一些人给了我一些关于需要运行哪些服务和东西才能再次“打开”我的网络应用程序调试的想法:
-
确保 ASP.Net 在 IIS 中正确注册并运行。要注册它,请按照 @Rahul Tripathi 的说明进行操作,然后转到搜索 > 键入 services.msc 并确保 ASP.Net 状态服务正在运行。
正如 @Morvael 建议的那样,始终以管理员模式运行 VS。
检查您的 Web 应用所在的应用池是否已启动。
确保 IIS 服务器本身正在运行(这为我解决了问题)
我仍然没有弄清楚我的 IIS 停止的原因是什么。昨天还好好的,今天就不行了。无论如何,我希望这个迷你清单对其他人有所帮助。干杯!
【讨论】:
【参考方案4】:使用 Microsoft Web Platform Installer 安装 IIS ASP.NET 4.5
在这里找到解决方案:
https://msdn.microsoft.com/en-us/library/dwesw3ee.aspx https://msdn.microsoft.com/en-us/library/mt621540.aspx#BKMK_deploy_asp_net【讨论】:
【参考方案5】:我在这里查看了所有答案,但没有任何效果。我的情况是 IIS,并且在一周前创建了一个自签名证书。工作了一个星期,突然间我开始得到 403。最后我关闭了 Visual Studio,进入 IIS 并删除了虚拟目录,回到 Visual Studio 并从项目 Web 设置中创建了一个虚拟目录,一切又开始工作了。
自我证书有一年的到期日期,所以我不确定它为什么停止工作,但这让我重新振作起来。
【讨论】:
【参考方案6】:基于@MiscellaneousUser 的回答,在我的情况下,我启用 HSTS 是为了强制网站使用 HTTPS 而不是 HTTP。
为了解决这个问题,我不得不在 applicationHost.config 文件中禁用 HSTS,该文件通常位于此处: C:\Windows\System32\inetsrv\Config\applicationHost.config
文件的相关行是这样的 - 我刚刚将启用从 true 更改为 false:
<hsts enabled="false" max-age="31536000" includeSubDomains="true" redirectHttpToHttps="true" />
显然您需要考虑禁用 HSTS 的安全影响。就我而言,这是我的开发 PC,所以我只打开了 HSTS 来模拟生产的作用。
【讨论】:
【参考方案7】:检查您的网络配置,如果有问题,您可能会收到此错误。我在 Web 配置中有一个 HTTP 到 HTTPS 重定向,但应用程序设置为以 http 启动。
修复(本地 IIS):
-
在 IIS 中为您的应用程序配置 https 绑定。
右键单击 Web 项目,然后单击“属性”>“Web”。在服务器下,将 URL 设置为您的 https URL。
【讨论】:
【参考方案8】:我的网络密码更改后总是会发生这种情况。 打开 IIS >> 选择应用程序池 >> 高级设置 >> 应用程序池标识 >> 设置凭据 >> 设置用户名和 新 密码。
还有:
-
确保应用程序池的状态为“已启动”。
重启 IIS,通过 IIS 管理器或以管理员身份打开 cmd 并运行命令
iisreset
。
【讨论】:
【参考方案9】:只需加上我的 2 美分。
最近我为另一个项目安装了 docker,这导致在 IIS Express
上运行的项目生成错误“指定的端口正在使用中”。为了解决这个问题,我做了一些事情,但我执行了这个命令:
netsh http add iplisten ipaddress=::
此命令会分解在IIS Local
上运行的站点,因此如果您执行此命令,您可以通过执行以下操作来使您的IIS Local
站点重新运行,这会撤消上一个命令:
netsh http delete iplisten ipaddress=::
【讨论】:
【参考方案10】:我在这里尝试了一切,最后发现这是我的 web.config 中的设置。我删除了该部分,它运行良好;稍后我会返回并解决它为什么被破坏的问题。
*编辑:由于 App_Offline.htm 文件和错误配置方式存在问题,我删除了 statusCode="503"。我已经删除了下面的行(本地不需要),并且一切正常。
<remove statusCode="503"/>
【讨论】:
【参考方案11】:可能是 Windows 用户凭据错误。
在导入需要配置 Windows 用户名和密码的现有 IIS 项目后,此问题经常发生。 要解决此问题,请确保应用程序池应用、网站和网站应用均已配置为使用您计算机的凭据。
-
在 IIS 服务器节点上,选择 pool-application/app/website 并选择 Advanced Settings。
检查物理路径凭据的值是否正确。如果没有,请修复它。
-
在 IIS 服务器节点上,选择 pool-application/app/website 并选择基本设置。
单击“测试设置”并验证凭据是否正确。
【讨论】:
【参考方案12】:在我的情况下,将调试模式更改为外部主机修复它
【讨论】:
以上是关于IIS 错误,无法在网络服务器上开始调试的主要内容,如果未能解决你的问题,请参考以下文章
“无法在 Web 服务器上开始调试” MSVSMON.EXE 无法启动。 VS2010 错误
无法在Web服务器上启动调试。基础连接已经关闭:接收时发生错误
向 system.webServer.httpErrors 添加 401 自定义错误会导致“无法在 Web 服务器上开始调试”错误