无法在Web服务器上启动调试。无法启动ASP.NET调试VS 2010,II7,Win 7 x64

时间:2011-01-11 01:07:11

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

我在Windows 7 x64上运行Visual Studio 2010(作为管理员),IIS 7。 我能够在IIS 7中运行ASP.NET网站而无需调试,但是当我按F5进行调试时,我得到:

  

无法在Web服务器上启动调试。无法启动ASP.NET调试。无需调试即可通过启动项目获得更多信息。

不幸的是,帮助链接对我没什么帮助,导致了一大堆事情。

我检查了以下内容:

  • 安全要求 - 我不记得以前必须做任何特别的事情。 IIS7中的工作进程是w3wp.exe。它说,如果它作为ASPNET或NETWORK SERVICE运行,我必须具有管理员权限来调试它。我怎么知道我是否需要在这里更改一些内容?

  • 网站属性页>启动选项>调试器> ASP.NET已经过检查。 使用自定义服务器设置为站点的URL(无需调试即可正常工作)。

  • web.config

  • 中启用了调试功能
  • 应用程序正在使用ASP.NET 3.5(我想最终转移到4.0,但我有一些迁移需要处理)。

  • 应用程序池:对.NET AppPool进行分类(也尝试过DefaultAppPool)。

我接下来可以查看哪些想法?

当然,安装IIS,VS,创建网站并开始测试它应该不难吗?

提前致谢。

31 个答案:

答案 0 :(得分:238)

尝试访问IIS并检查以确保您正在使用的应用程序池已启动。很多时候,您将产生一个关闭应用程序池的错误。你只需要右键单击并开始,你应该很高兴。

答案 1 :(得分:44)

原来,罪魁祸首是IIS Url Rewrite 模块。我已经定义了一个规则,将对 Default.aspx 的调用(设置为网站的起始页)重定向到网站的根目录,以便我可以拥有规范的主页URL。然而,显然VS有一个问题,并感到困惑。当我使用Helicon ISAPI_Rewrite时没有发生这个问题,所以我甚至没有检查过。

我最终从头开始创建了一个全新的网站,并将项目/文件一点一点地移植到我的解决方案中并重建我的web.config直到我发现了这一点! 好吧,至少现在我有一个使用.NET 4.0的稍微清洁的网站(到目前为止,希望我不会碰到任何墙) - 但真是太痛苦了!

答案 2 :(得分:40)

Visual Studio在启动时会(由于某种原因)尝试访问URL:

  

/debugattach.aspx

如果你有一个重写规则,重定向(或以其他方式捕获),比如.aspx个文件,那么你会收到这个错误。解决方案是将此部分添加到web.config的{​​{1}}部分的开头:

<system.webServer>/<rewrite>/<rules>

这将确保捕获这一个特定请求, nothing ,最重要的是,停止执行,这样就不会运行任何其他规则。这是一个强大的解决方案,因此请随意将其保留在配置文件中以供生产。

答案 3 :(得分:30)

为了其他人的利益,在我的情况下,我已将应用程序池配置为使用我的Windows凭据以访问网络资源共享。自从调试解决方案以来,我已经重置了我的Windows密码。更改了存储在app pool和bada bing中的密码。

答案 4 :(得分:19)

如果设置了应用程序池标识,则自定义帐户和计算机密码已更改,您必须更新密码

答案 5 :(得分:17)

对于我的场景,它是对web.config中httpErrors部分的更改,设置如下:

<httpErrors mode="Custom"> 

导致“无法在Web服务器上启动调试”问题。将其重新设置为“DetailedLocalOnly”的上一个值可解决问题。深入挖掘我发现实际上只是401错误设置导致了这一点:

<httpErrors mode="Custom"> 
    <error statusCode="401" prefixLanguageFilePath="" path="/masterpages/500.html" responseMode="ExecuteURL" />
<httpErrors mode="Custom"> 

注释掉401错误行也解决了这个问题,因为我可以维护自定义错误处理并从调试开始。

我仍然不知道为什么会这样。

答案 6 :(得分:13)

请检查应用程序池。如果它被停止重启它。

答案 7 :(得分:11)

尝试调试DNN(Dot Net Nuke)模块时遇到同样的问题。 原来你需要编译debug =“true”:

<compilation debug="true" strict="false" targetFramework="4.0"> 
你的web.config中的

。默认情况下,它在DNN中为false。原始来源: http://www.dnnsoftware.com/forums/forumid/111/postid/189880/scope/posts

答案 8 :(得分:8)

实现重写模块后我遇到了完全相同的问题。

如果我从web.config文件中删除重写条目,则调试工作正常。

为了解决这个问题,我只是在调试时注释掉重写标记,就像这样......

<rewrite>
    <rules>
        <rule name="LowerCaseRule_1" stopProcessing="true">
            <match url="[A-Z]" ignoreCase="false" />
            <action type="Redirect" url="{ToLower:{URL}}" />
        </rule>
        <rule name="RedirectDefault.aspx_1" stopProcessing="true">
            <match url="(.*)default.aspx" />
            <action type="Redirect" url="{R:1}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

然后我在调试后删除了注释。

必须是visual studio 2010中的错误。

答案 9 :(得分:6)

我在IIS中停止了应用程序池后出现了同样的错误。启动应用程序池后,问题已解决。

答案 10 :(得分:5)

以下是我为清除您注意到的错误所做的工作。在文件系统中找到应用程序的Web文件夹,转到属性=&gt;安全性单击高级按钮,然后单击所有者选项卡,点击修改按钮,然后更改文件夹的所有者(使用正确的权限),并选中“对子容器和对象重新设置所有者”复选框。点击“应用”然后我开始营业(能够调试)。

希望这适用于其他人。

答案 11 :(得分:5)

最后为我的单一解决方案解决了这个问题。解决方案中的两个项目被设置为IIS中的站点。我进入并在身份验证下为这两个项目启用了ASP.Net Impersonation ...和VIOLA!最后,没有更多这个恼人的错误!

答案 12 :(得分:3)

我在VS 2012中收到了相同的错误消息,但未以管理员身份运行。当我以管理员身份运行应用程序时,我得到了一个不同的,稍微有用的消息(我能够弄清楚)。 HTH

答案 13 :(得分:3)

如果App Pool无法重新启动或只是不想重新启动,请验证Windows是否在ASP.NET v4.0或其他应用程序池上进行了最新更新。这就是我的情况。我只是重新启动了我的计算机,然后重新启动了ASP.NET v4.0 App Pool,一切都恢复了工作!

答案 14 :(得分:2)

启用所有IIS窗口功能时,Windows 10存在同样的问题。切换到Windows 8.1并再次遇到问题。 根位于网站名称&#34; http://MySite.local&#34; (与OS版本无关)。

解决方案很简单

  • %SystemRoot%\System32\drivers\etc\

  • 中编辑主机文件
  • 使用ip绑定添加行:127.0.0.1 MySite.local

答案 15 :(得分:2)

丹,

除了Aaron的建议外,请尝试以下

  • 检查IIS网站中是否选择了集成Windows身份验证
  • 您可以使用Cassini而不是IIS进行调试吗?

答案 16 :(得分:1)

确保您网站的应用程序池使用正确的框架版本。我在ASP.Net 2005站点上遇到“无法启动调试”错误。它错误地使用了Windows 7上的DefaultAppPool(我认为它使用的是.Net Framework 4)。我基于.Net Framework 2创建了一个新的应用程序池,并将其分配给问题网站。之后调试工作正常。

答案 17 :(得分:1)

检查IIS上的网站是否停止。

我修好了我的网站运行。 :d

答案 18 :(得分:1)

我在Windows 8.1上的Visual Studio 2012和2013中遇到了同样的问题。对我来说,修复是使用“打开或关闭Windows功能”

将Windows身份验证添加到IIS

Turn Windows features on or off screenshot

答案 19 :(得分:1)

我遇到了同样的问题,发现这是因为我在结束标记后的Web.config中错误地输入了一个字符。我的Web.config在最后看起来像这样:</section>h。 &#34; h&#34;在结束标记之后是一个额外的字符。

答案 20 :(得分:1)

我遇到了这个问题,最终意识到我的ASP.net没有正确注册。在Visual Studio之前安装IIS服务器时可能会发生这种情况。要解决此问题,请使用命令 aspnet_regiis -i 更多信息可以在link

中找到

答案 21 :(得分:1)

我今天出现了这个错误,因为代码中存在大量错误,导致IIS充满请求。这基本上锁定了IIS,因此当我尝试调试时,它'超时'试图启动调试器。我只是重新启动IIS,花了几分钟,它解决了这个问题。

我确实希望这个错误不那么通用,似乎有几种不同的方法来制作它。

答案 22 :(得分:1)

有同样的问题。如果您在IIS上安装了SSL证书,并且您尝试从Visual Studio调试它,则需要在IIS上设置应用程序以忽略证书。

答案 23 :(得分:0)

我遇到了同样的问题但它是在Visual工作室自己的Web开发服务器而不是IIS上。解决方法是取消选中项目属性下的Web选项卡中的选项,将服务器设置应用于所有用户(存储在项目文件中)。 )希望能节省一些宝贵的时间。

答案 24 :(得分:0)

我遇到了同样的问题。 以上所有答案对我都不起作用。 解决方案是手动删除bin和obj文件夹。

答案 25 :(得分:0)

我也发现了这个问题,但它与@Kirk解释和URL重写最相似。

在我的情况下,有人将此更改签入了MVC项目的web.config文件:

<system.webServer>
    <security>
        <requestFiltering>
            <fileExtensions>
                <add fileExtension=".aspx" allowed="false" />
            </fileExtensions>
        </requestFiltering>
    </security>
</system.webServer>

由于Web服务器上不允许使用.aspx文件扩展名,因此/debugattach.aspx URL被拒绝,导致调试器无法运行。删除此配置后,它再次起作用。

答案 26 :(得分:0)

卸载IIS UrlScan Extension为我解决了这个问题。

答案 27 :(得分:0)

我在Visual Studio中创建应用程序时遇到了同样的问题,然后在属性中创建了用于本地IIS的虚拟目录。如果有人有这个错误,那是因为VS在错误的AppPool下创建应用程序,即在AppPool下不适合您的需求。
如果是这种情况,请转到IIS管理器,选择应用程序,转到基本设置并更改AppPool for App,您就可以了。

答案 28 :(得分:0)

我最近遇到了同样的错误,在我的情况下,结果发现有重复的MIME类型。我最近添加了两个最初未显示在列表中的内容。 IIS允许我添加它们,只有当我决定再次检查站点的MIME类型作为我的诊断过程的一部分时,我在IIS中也出现了错误。它在web.config中引用了重复项。一旦我回到web.config文件,我注意到添加了一个名为的新部分,其中包括最近添加的两个MIME类型。删除那部分,生活又好了!希望这可以帮助那些没有设法用其他任何建议解决问题的人。

答案 29 :(得分:0)

删除这样的sting:web.config中的targetFramework =“4.0”或将AppPool更改为适当的框架版本。

答案 30 :(得分:-4)

不使用IIS,只需使用IIS Express即可。