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

Dan*_*n C 92 .net asp.net iis-7 visual-studio-2010 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,创建网站并开始测试它应该不难吗?

提前致谢.

Tre*_*and 238

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

  • +1用于验证应用程序池的用户名/密码错误. (14认同)
  • 我两次偶然发现这个帖子,它两次都有效! (13认同)
  • 在我的情况下,池已经启动,但在停止并再次启动它之后,它工作正常. (3认同)

Dan*_*n C 44

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

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

  • 是的,但您必须确保应用程序池正在运行,也是您的门户网站. (6认同)
  • 这对我来说.将所有HTTP流量发送到HTTPS的重写规则导致了这个丑陋的错误.我找不到任何方法来保持规则调试. (6认同)

Kir*_*oll 41

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

/debugattach.aspx

如果你有一个重写规则,重定向(或以其他方式捕获),比如.aspx文件,在其他地方,那么你将得到这个错误.解决方案是将此部分添加到您web.config<system.webServer>/<rewrite>/<rules>部分的开头:

<rule name="Ignore Default.aspx" enabled="true" stopProcessing="true">
    <match url="^debugattach\.aspx" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="None" />
</rule>
Run Code Online (Sandbox Code Playgroud)

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


Bre*_*eno 30

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


小智 20

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


小智 18

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

<httpErrors mode="Custom"> 
Run Code Online (Sandbox Code Playgroud)

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

<httpErrors mode="Custom"> 
    <error statusCode="401" prefixLanguageFilePath="" path="/masterpages/500.html" responseMode="ExecuteURL" />
<httpErrors mode="Custom"> 
Run Code Online (Sandbox Code Playgroud)

注释掉401错误行也解决了这个问题,我继续使用它,因为我可以保持自定义错误处理并从调试开始.

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

  • 将erroMode更改为“ DetailedLocalOnly”也为我解决了。调试器正在尝试打开“ /DebugAttach.aspx”,这使其转到了自定义错误页面,该页面在给定时间无法运行。 (2认同)

小智 13

Plase检查应用程序池.如果它是停止的.重启它.

  • 这与一个月前提出的1号答案相同. (4认同)

Zar*_*dan 11

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

<compilation debug="true" strict="false" targetFramework="4.0"> 
Run Code Online (Sandbox Code Playgroud)

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


小智 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>
Run Code Online (Sandbox Code Playgroud)

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

必须是visual studio 2010中的错误.


小智 6

我在IIS中停止了应用程序池后出现了同样的错误.启动App Pool后,问题得以解决.


Moe*_*ard 5

以下是我为清除您注意到的错误所做的工作.在文件系统中找到应用程序的Web文件夹,转到属性=>安全性单击高级按钮,然后单击所有者选项卡,单击编辑按钮并更改文件夹的所有者(具有正确的权限)并选中" Repalce"所有者在子容器和对象 "复选框.单击" 应用 ",然后我在业务(能够调试).

希望这适用于其他人.

  • 将所有者更改为谁? (2认同)

Tod*_*nce 5

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