17

我在 Visual Studio 2010 中收到错误消息“无法在 Web 服务器上开始调试”。我单击了“帮助”按钮并按照相关建议进行操作,但没有成功。

当修改为使用 IIS 而不是 Cassini(用于调试)时,新创建的本地 ASP.Net 项目会发生这种情况。它提示在 web.config 中设置 debug="true" 然后立即弹出错误。事件查看器中没有显示任何内容。

我可以附加到 w3wp 进行调试。它可以工作,但不如 F5 方便。

在同一台 PC 上,我也有与 VS2008 类似的问题。调试曾经对两者都有效。

我已经重新注册了 Framework 4 (aspnet_regiis -i)。我运行了 VS2010 修复(这是 RTM 版本)。我在 Windows Server 2008 R2 x64 机器上运行。

我确实安装了 Resharper V5。

必须有一些配置设置或注册表值在导致问题的修复后仍然存在。

我会很感激任何想法。

4

27 回答 27

14

禁用环回检查

这里是原始微软页面

要设置 DisableLoopbackCheck 注册表项,请按照下列步骤操作:

单击开始,单击运行,键入 regedit,然后单击确定。

在注册表编辑器中,找到并单击以下注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

右键单击 Lsa,指向新建,然后单击 DWORD 值。

键入 DisableLoopbackCheck,然后按 Enter。

右键单击 DisableLoopbackCheck,然后单击修改。

在数值数据框中,键入 1,然后单击确定。

退出注册表编辑器,然后重新启动计算机。

于 2010-08-05T15:36:12.773 回答
12

我有一台带有Windows 7. 我安装VS2010了我的开发环境并希望我的 F5 调试问题会消失,但它仍然无法启动调试器。

这是一个很好的线索,因为它排除了软件的安装。

我终于将其追溯到我的 HOSTS 文件。我有一些我可以访问的本地网站的条目,例如“ http://testsite.lcl ”,但我分配的 IP 是我机器的 IP 而不是使用的127.0.0.1,所以它看起来像是 VS2010 的远程服务器。换回127.0.0.1解决问题。

感谢大家对此的帮助。

于 2011-11-22T20:50:45.653 回答
10

我有同样的问题。我是怎么修的。

转到 IIS(在我的情况下为 IIS 7 / Windows 7)。从列表中选择您的网站,单击 ASP.NET 部分中的 .NET 编译。选择打开功能。检查您的 Debug 是否设置为 True。就我而言,这是错误的。一旦我将其更改为 True - 我的调试就回来了 :)

于 2011-07-20T18:33:55.310 回答
6

这些步骤可能因您的 Windows 版本而异。我正在使用 7 和 iis 7。

打开 IIS 管理器,单击应用程序池并找到 2 个 ASP.NET v4.0 池(一个称为“ASP.NET v4.0”,另一个称为“ASP.NET v4.0 Classic”。可能第一个已停止. 还没开始呢,我们需要再调查一下。

对于“ASP.NET v4.0”池,检查标识字段中的名称。是 ApplicationPoolIdentity 吗?记住名字。

打开计算机管理(右键单击我的电脑并选择管理)。展开事件查看器,然后展开 Windows 日志。单击应用程序并等待数据加载。用户配置文件服务的源应该存在错误,并显示以“Windows 无法登录,因为无法加载您的配置文件。检查您是否已连接到网络,并且您的网络运行正常”开头的消息。

如果你确实发现了,那么你和我有同样的问题。

解决方案:返回 IIS 管理器并右键单击“ASP.NET v4.0”并选择高级设置。在流程模型下,第一个字段是身份。将其从 ApplicationPoolIdentity 更改为 NetworkService。单击确定。

现在启动池,如果它没有自动重新启动。返回您的应用程序并按 F5(开始调试),您的应用程序应该可以工作。

请注意,我还没有弄清楚为什么会这样,这可能是一个安全风险,但至少你可以在考虑这个问题的同时做一些工作。

于 2011-04-29T10:17:14.930 回答
4

运行我在 Visual Studio 2010 中创建的网站时,我在 Visual Studio 2012 中遇到了这个问题。我尝试了以下各项,但都没有解决问题,但仍然可能需要:

  1. 检查应用程序池是否针对与 web.config 中指定的框架相同的框架

    <编译 defaultLanguage="c#" debug="true" targetFramework="4.0">
  2. 启动 64 位远程调试器:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe

  3. 设置 DisableLoopbackCheck 注册表项并重新启动 Windows。此处为 MS 说明

  4. 在本地浏览该网站(它出现得很好)。

  5. 最后我找到了解决问题的 IIS 设置。

    1. 转到 IIS(在我的情况下为 7.5)并单击站点节点中的相关站点。
    2. 双击 ASP.NET 部分中的 .NET 编译
    3. 在行为下,将调试设置为 True。
    4. 单击应用并在 Visual Studio 中运行该站点。
于 2012-09-11T15:49:51.957 回答
3

您可以首先使用您的 iis 部署您的 Web 应用程序/站点,然后打开您的 Visual Studio 2010。然后单击“文件”->打开->网站->本地 IIS 站点,然后选择您的网站/应用程序。然后你会发现调试可能有效。这种方法适用于我的情况。

于 2010-08-03T19:21:31.813 回答
3

我在 Win7 和 VS2010(没有 ReSharper)上遇到了同样的问题,发现 Skype 在端口 80 上侦听。IIS 默认侦听端口 80。当您将 VS 设置为调试在 IIS 中运行的现有 Web 应用程序而不是内置的 ASP.NET 调试 Web 服务器时,可能会发生这种情况。

我通过取消选中“使用端口 80 和 443 作为传入连接的替代方案”解决了这个问题。在工具 -> 选项 -> 连接下的 Skype 中,然后重新启动 Skype。

于 2011-08-01T08:41:24.490 回答
2

对我有用的是在服务器级别进入 IIS,单击 ISAPI 和 CGI​​ 限制,我发现 asp.net 4.0 的 aspnet_isapi.dll 设置为不允许。我将其设置为允许并且调试工作。步骤是:

  1. 打开 IIS。
  2. 点击顶层
  3. 在功能视图中选择 IIS 下的 ISAPI 和 CGI​​ 限制
  4. 检查描述,如果 ASP.NET v4[当前版本] 具有不允许的限制,请单击对话框的“操作”部分中的“允许”链接。

这种变化应该解决这个问题。请注意,当我尝试在没有调试的情况下运行 Web 应用程序时,我想出了这个解决方案,但我想出了以下错误:

HTTP 错误 404.2 - 未找到 由于 Web 服务器上的 ISAPI 和 CGI​​ 限制列表设置,无法提供您请求的页面。

于 2012-02-23T20:28:25.080 回答
1

另一件事要尝试(这对我有用):

在 IIS 中,单击应用程序池 >(您的站点)> 高级设置,然后将“启用 32 位应用程序”更改为 True。

于 2015-08-17T17:50:40.107 回答
0

尽管这些文章可能有一些有用的信息,但我没有明确的答案:

使用 Windbg 从 w3wp.exe 开始 这特别提到了 windbg/cdb 调试器,但这个建议应该适用于 Visual Studio 与 cdb(附加到 w3wp)的对话。

使用 Visual Studio 进行 远程调试 我之所以提到远程调试,是因为我过去曾多次使用它来让 Visual Studio 附加到 w3wp.exe。W3wp.exe 在不同的会话中运行,因此您不能直接将调试器附加到该会话中。

于 2010-08-03T22:29:27.550 回答
0

你没有提到你使用的是什么操作系统。但这可能与操作系统无关。我在这里猜测一下。如果您在 Windows 7 上运行,请尝试在管理员权限下运行 Visual Studio。

您也可以尝试将您的用户 ID 添加到 VS 调试器用户组。您可以通过重新单击计算机名称或我的计算机并选择管理来访问用户组。在此之下,您可以找到用户和组。

于 2010-08-04T09:51:33.030 回答
0

在目录安全选项卡中的 IIS 中,如果使用 SSL,如果您在本地 PC 上运行它,请选中“忽略客户端证书”。

于 2010-08-24T21:32:07.890 回答
0

在新安装默认不包含 IIS 的 Windows 7 后,我得到了这个。安装 IIS 后,会创建默认应用程序池以在 .NET 2.0 下运行。虽然我能够将默认的应用程序池从 .net 2 设置为 .net 4,但我仍然收到此错误。我必须在 IIS 中重新安装 .net 4 才能使其正常工作。也就是说,运行 C:\Windows\Microsoft.NET{FrameworkFolder}\v{FrameworkNumber}\aspnet_regiis -i

于 2012-01-01T22:11:00.913 回答
0

对我有用的是编辑 C:\Windows\System32\drivers\etc 文件夹中的 HOSTS 文件,并为我设置的网站名称设置环回。

例如:
127.0.0.1 http://guyellisrocks.com/

于 2012-06-07T06:22:13.933 回答
0

我遇到了同样的问题,在我的情况下,它发生是因为 AppPool 身份设置为模拟更改密码的 AD 用户。因此,该进程无法启动,并且 AppPool 在尝试从 VS 调试时总是停止。

在 AppPool/Advanced Settings/Identity 中更新密码后,一切都开始顺利运行。

于 2013-03-04T11:54:46.420 回答
0

检查以下路径中是否存在 msvsmon.exe(Visual Studio 远程调试监视器)文件:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x64

如果文件不在上述路径上,那么您需要从具有相同版本 Visualstudio 的任何其他机器上获取它。

于 2013-03-15T04:48:12.387 回答
0

尝试了上述所有解决方案后,我仍然遇到此问题。其他项目正在调试没有问题,所以我知道它必须与这个特定应用程序的配置有关。

我的是在 IIS 8 下运行的 MVC 应用程序。问题在于 URL 重写。

我有一个规则来强制使用斜杠。我所要做的就是禁用它(可以直接在 IIS 中完成,也可以通过下面的 web.config 完成 - 只需设置 enabled="false")

 <rewrite>
        <rules>
            <rule name="AddTrailingSlashRule1" enabled="false" stopProcessing="true">
                <match url="(.*[^/])$" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                </conditions>
                <action type="Redirect" url="{R:1}/" />
            </rule>
        </rules>
    </rewrite>
于 2013-06-15T12:09:17.433 回答
0

卸载项目,右键“edit abc.csproj”就可以看到配置了。如果您的项目被映射为使用 IIS Web Express url。

<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>6270</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://matrimonyfree.in/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>

验证是否在 IIS 中启动了网站 http://matrimonyfree.in在这种情况下

于 2013-10-19T14:05:31.987 回答
0

也可能是因为你的配置文件中有一些特殊或非法的格式,我建议你先检查一下。

就我而言,我遇到了一个错误,因为当我尝试从 IIS 浏览我的服务时,它向我显示了真正的错误。

于 2014-02-18T05:50:46.120 回答
0

我尝试了在线上的每一个解决方案来解决这个问题,但似乎没有什么能始终如一地工作。

我最终在 2010 年和 2012 年通过在 Debug Source Files 设置中跟踪到以下丢失的文件来解决它

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc\

解决方案 > 属性 > 调试源文件 >

检查以确保所有文件都在那里,然后删除此条目,一切都恢复正常。

于 2014-06-02T03:24:08.203 回答
0

您是否更改了 IIS 网站上的绑定?如果是这样,您需要转到您的项目属性,选择 Web 选项卡,然后更改项目 URL 以匹配您的绑定。所以它说 http:///yourwebsite 将其更改为 http:///yourwebsite

这对我有用。

于 2014-11-11T21:16:00.500 回答
0

在我的情况下,是system.webServer > httpErrors > errorMode导致问题的 web.config 中的。

如果你有errorMode="Custom"这个尝试:

<httpErrors errorMode="DetailedLocalOnly">

有关 URL 重写的变体和其他想法,请参阅此答案:https ://stackoverflow.com/a/15585629/631277

于 2015-04-13T07:52:24.740 回答
0

我在使用 Visual Studio 2013 时遇到了同样的问题。就我而言,我已从 IIS 中删除了“默认网站”。为了解决我再次创建默认网站的问题,将物理路径设置为 C:\inetpub\wwwroot 并将端口设置为 80(默认端口)。重新启动 Visual Studio 后,它运行良好。希望它可以帮助某人。

于 2016-01-21T12:47:13.550 回答
0

在此处输入图像描述

无法在 Web 服务器上开始调试。Web 服务器配置不正确。

如何解决这个问题?

第1步

打开命令提示符(以管理员身份运行)

第2步

C:\Windows\system32>cd..

C:\Windows>cd Microsoft.NET

C:\Windows\Microsoft.NET>cd 框架

C:\Windows\Microsoft.NET\Framework>cd v4.0.30319

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -i

于 2017-04-26T05:45:23.587 回答
-1

您在 Visual Studio 中的解决方案文件已损坏。这是从文件系统网站转换为 IIS 网站时的一个已知问题,并且已从 2008 年延续到 2010 年。但不确定 ms 的 kb 网站上的错误报告的位置。

从解决方案文件中删除网站(右键单击项目名称,单击“删除”)。然后右键单击解决方案名称,单击“添加现有网站”。当添加网站的对话框出现时,在左侧窗格中选择“从 IIS”。在 IIS 中导航到您的应用程序,如有必要,选择“使用安全套接字层”,然后单击“完成”(或任何标记的按钮)。

这将永久解决问题。

于 2010-08-13T17:02:40.377 回答
-1

无法在 Web 服务器上开始调试。Web 服务器配置不正确。

  1. 如何解决这个问题?

    第1步

    打开命令提示符(以管理员身份运行)

    第2步

    C:\Windows\system32>cd..

    C:\Windows>cd Microsoft.NET

    C:\Windows\Microsoft.NET>cd 框架

    C:\Windows\Microsoft.NET\Framework>cd v4.0.30319

    C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS 4.0.30319.0 管理实用程序,用于在本地计算机上安装和卸载 ASP.NET。版权所有 (C) 微软公司。版权所有。开始安装 ASP.NET (4.0.30319.0)。.....................完成安装 ASP.NET (4.0.30319.0)。

    C:\Windows\Microsoft.NET\Framework\v4.0.30319>

于 2017-04-26T05:00:29.550 回答
-2

要检查的一件事是确保 IIS 是否已启动并正在运行。像这样简单的事情有时可以解决这个问题。

于 2012-11-27T13:01:47.110 回答