首页 文章

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

提问于
浏览
93

我在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,创建网站并开始测试它应该不难吗?

提前致谢 .

30 回答

  • 1

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

  • 6

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

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

  • 1

    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>
    

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

  • 0

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

  • 43

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

  • 1

    对于我的场景,它是对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错误行也解决了这个问题,我继续使用它,因为我可以保持自定义错误处理并从调试开始 .

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

  • 238

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

  • 38

    尝试调试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

  • 0

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

    如果我从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中的错误 .

  • 30

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

  • 17

    以下是我为清除您注意到的错误所做的工作 . 在文件系统中找到应用程序的Web文件夹,转到 Properties=>Security 单击 Advanced 按钮,然后单击 Owner 选项卡,单击 Edit 按钮并更改文件夹的所有者(使用正确的权限)并选中“ Repalce owner on subcontainers and objects " checkbox. Click " Apply ”然后我在做生意(能够调试) .

    希望这适用于其他人 .

  • 3

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

  • 19

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

  • 2

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

  • 0

    担,

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

    • 检查IIS网站中是否选择了集成Windows身份验证

    • 您可以使用Cassini而不是IIS进行调试吗?

  • 13

    打开所有IIS窗口功能时,与Windows 10有同样的问题 . 切换到Windows 8.1并再次遇到问题 . 根位于网站名称“http://MySite.local”(与操作系统版本无关) .

    解决方案很简单

    • %SystemRoot%\System32\drivers\etc\ 中编辑主机文件

    • 使用ip绑定添加行: 127.0.0.1 MySite.local

  • 3

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

    我确实希望这个错误不那么通用,似乎有几种不同的方法可以产生它 .

  • 5

    我在Windows 8.1上的Visual Studio 2012和2013中遇到了同样的问题 . 对我来说,修复是使用“打开或关闭Windows功能”将Windows身份验证添加到IIS

    Turn Windows features on or off screenshot

  • 1

    Be sure your site's Application Pool uses the correct framework version . 我在ASP.Net 2005网站上收到了"Unable to start debugging"错误 . 它错误地使用了Windows 7上的DefaultAppPool(我认为它使用的是.Net Framework 4) . 我基于.Net Framework 2创建了一个新的应用程序池,并将其分配给问题网站 . 之后调试工作正常 .

  • 0

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

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

  • 0

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

  • 8

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

  • 0

    我有同样的问题,发现它是由于我在结束标记后的 Web.config 中错误地键入了一个字符 . 我的 Web.config 在最后看起来像这样: </section>h . "h"是结束标记后的额外字符 .

  • 2

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

  • 1

    卸载IIS UrlScan Extension解决了我的问题 .

  • 5

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

  • 1

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

  • 1

    我也发现了这个问题,但它与@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,导致调试器无法运行 . 删除此配置后,它再次起作用 .

  • 11

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

  • 0

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

相关问题