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并检查以确保您正在使用的应用程序池已启动.很多时候,您将产生一个关闭应用程序池的错误.你只需要右键单击并开始,你应该很高兴.
Dan*_*n C 44
事实证明,罪魁祸首是IIS Url Rewrite模块.我已经定义了一个规则,将对Default.aspx(设置为网站的起始页面)的调用重定向到网站的根目录,以便我可以拥有规范的主页URL.然而,显然VS有一个问题,并感到困惑.当我使用Helicon ISAPI_Rewrite时没有发生这个问题,所以我甚至没有检查过.
我最终从头开始创建了一个全新的网站,并将项目/文件一点一点地移植到我的解决方案中并重建我的web.config直到我发现了这一点!好吧,至少现在我有一个使用.NET 4.0的稍微清洁的网站(到目前为止,希望我不会碰到任何墙) - 但真是太痛苦了!
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中的密码.
小智 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错误行也解决了这个问题,我继续使用它,因为我可以保持自定义错误处理并从调试开始.
我仍然不知道为什么会这样.
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中的错误.
以下是我为清除您注意到的错误所做的工作.在文件系统中找到应用程序的Web文件夹,转到属性=>安全性单击高级按钮,然后单击所有者选项卡,单击编辑按钮并更改文件夹的所有者(具有正确的权限)并选中" Repalce"所有者在子容器和对象 "复选框.单击" 应用 ",然后我在业务(能够调试).
希望这适用于其他人.
最后为我的单一解决方案解决了这个问题.解决方案中的两个项目被设置为IIS中的站点.我进入并在身份验证下为这两个项目启用了ASP.Net Impersonation ...和VIOLA!最后,没有更多这个恼人的错误!