VS2010错误:无法在Web服务器上启动调试

时间:2010-05-20 21:54:59

标签: asp.net debugging visual-studio-2010 iis-7.5

我在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。

必须有一些配置设置或注册表值能够在修复过程中幸免于此。

我很感激任何想法。

27 个答案:

答案 0 :(得分:14)

禁用环回检查

original microsoft page here

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

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

在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制\ LSA

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

键入DisableLoopbackCheck,然后按ENTER键。

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

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

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

答案 1 :(得分:12)

我有一台Windows 7的新电脑。我安装了VS2010和我的开发环境,希望我的F5调试问题不复存在,但它仍然无法启动调试器。

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

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

感谢大家的帮助。

答案 2 :(得分:10)

我遇到了同样的问题。我是如何修理的。

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

答案 3 :(得分: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日志。单击Application并等待加载数据。用户配置文件服务来源应该出现错误,其中的消息以“Windows无法登录您,因为您的配置文件无法加载。检查您是否已连接到网络,以及您的网络运行正常。”< / p>

如果你确实找到了,那么你和我一样有问题。

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

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

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

答案 4 :(得分:4)

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

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

    <compilation 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 Instructions here

  4. 在本地浏览网站(结果很好)。

  5. 最后我找到了修复问题的IIS设置。

    1. 转到IIS(在我的情况下为7.5),然后单击“站点”节点中的相关站点。
    2. 双击ASP.NET部分中的.NET编译
    3. 在“行为”下,将“调试”设置为“真”。
    4. 单击“应用”并在Visual Studio中运行该站点。

答案 5 :(得分:3)

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

答案 6 :(得分:3)

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

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

答案 7 :(得分:2)

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

  1. 打开IIS。
  2. 点击顶层
  3. 在“功能”视图中选择IIS下的ISAPI和CGI限制
  4. 检查说明,如果ASP.NET v4 [当前版本]具有“不允许限制”,请单击对话框“操作”部分中的“允许”链接。
  5. 此更改应解决问题。请注意,当我尝试使用调试运行Web应用程序时,我想出了这个解决方案,我想出了以下错误:

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

答案 8 :(得分:1)

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

在IIS中,单击“应用程序池”&gt; (您的网站)&gt;高级设置,并更改&#34;启用32位应用程序&#34;真实。

答案 9 :(得分:0)

就我而言,web.config中的system.webServer > httpErrors > errorMode导致了问题。

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

<httpErrors errorMode="DetailedLocalOnly">

请参阅此回答:https://stackoverflow.com/a/15585629/631277了解有关网址重写的变体和其他想法

答案 10 :(得分:0)

我在Visual Studio 2013中遇到了同样的问题。在我的情况下,我删除了&#34;默认网站&#34;来自IIS。要解决此问题,我再次创建了默认网站,将物理路径设置为C:\ inetpub \ wwwroot,将端口设置为80(默认端口)。重新启动Visual Studio后,它工作得很好。希望它可以帮到某人。

答案 11 :(得分:0)

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

这对我有用。

答案 12 :(得分:0)

我尝试了每个解决此问题的解决方案,似乎没有任何工作能够持续发挥作用。

我最终在2010年和2012年通过将其跟踪到调试源文件设置中的以下缺失文件来解决它

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

解决方案&gt;属性&gt;调试源文件&gt;

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

答案 13 :(得分:0)

enter image description here

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

如何解决此问题?

步骤-1

  

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

步骤-2

  

C:\ Windows \ System32下&GT; CD ..

     

C:\ Windows&gt; cd Microsoft.NET

     

C:\ Windows \ Microsoft.NET&gt; cd Framework

     

C:\ Windows \ Microsoft.NET \ Framework&gt; cd v4.0.30319

     

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319&gt; aspnet_regiis.exe -i

答案 14 :(得分:0)

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

在我的情况下,我遇到了错误,因为当我尝试从IIS浏览我的服务时,它向我显示了真正的错误。

答案 15 :(得分:0)

卸载项目,右键单击“编辑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

答案 16 :(得分:0)

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

Mine是在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>

答案 17 :(得分:0)

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

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

答案 18 :(得分:0)

我遇到了同样的问题,在我的情况下,它发生了,因为AppPool标识设置为模拟已更改密码的AD用户。因此,尝试从VS调试时,进程无法启动,AppPool始终停止。

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

答案 19 :(得分:0)

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

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

答案 20 :(得分:0)

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

答案 21 :(得分:0)

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

答案 22 :(得分:0)

您还没有提到您正在使用的操作系统。但这可能与操作系统无关。我在这里猜测。如果您在Windows 7上运行,请尝试在Administrator previlages下运行visual studio。

您还可以尝试将用户ID添加到VS调试器用户组。您可以通过单击计算机名称或计算机并选择“管理”来访问用户组。在此之下,您可以找到用户&amp;基团。

答案 23 :(得分:0)

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

Using Windbg to start with w3wp.exe这具体提到了windbg / cdb调试器,但是这个建议应该适用于Visual Studio与cdb(附加到w3wp)的对话。

Remote debugging with Visual Studio我提到远程调试的原因是我过去曾经多次使用它来让Visual Studio连接到w3wp.exe。 W3wp.exe在不同的会话中运行,因此您无法直接将调试器附加到该会话。

答案 24 :(得分:-1)

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

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

这将永久解决问题。

答案 25 :(得分:-1)

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

  1. 如何解决此问题?

    步骤1

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

    步骤-2

    C:\ Windows \ System32下&GT; CD ..

    C:\ Windows&gt; cd Microsoft.NET

    C:\ Windows \ Microsoft.NET&gt; cd Framework

    C:\ Windows \ Microsoft.NET \ Framework&gt; cd v4.0.30319

    C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319&gt; aspnet_regiis.exe -i Microsoft(R)ASP.NET RegIIS版本4.0.30319.0管理 用于在本地计算机上安装和卸载ASP.NET的实用程序。 版权所有(C)Microsoft Corporation。版权所有。开始 安装ASP.NET(4.0.30319.0)。 ..................完了 安装ASP.NET(4.0.30319.0)。

    C:\的Windows \ Microsoft.NET \框架\ v4.0.30319&GT;

答案 26 :(得分:-2)

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