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

92
我正在运行Visual Studio 2010 (作为管理员),在Windows 7 x64上运行IIS 7。 我可以在IIS 7上正常运行ASP.NET网站,但是当我按F5调试时,会出现以下问题:
“无法在Web服务器上启动调试。无法启动ASP.NET调试。启动项目时可能提供更多信息而不进行调试。”
不幸的是,帮助链接并没有帮我太多忙,并且导致了一堆东西。
我检查了以下内容: 1. 安全要求 - 我不记得以前必须做任何特殊事情。在IIS7中,工作进程是w3wp.exe。它说如果它正在作为ASPNET或NETWORK SERVICE运行,则必须具有管理员特权才能对其进行调试。我如何找出是否需要在这里更改某些内容? 2. 网站属性页面>启动选项>调试器>已检查ASP.NET。使用自定义服务器设置为站点的URL(在没有调试的情况下很好用)。 3. 在web.config中启用调试。 4. 应用程序正在使用ASP.NET 3.5(我想最终转移到4.0,但我有一些迁移要处理)。 5. 应用程序池:Classing .NET AppPool(也尝试过DefaultAppPool)。
还有哪些地方我可以检查呢? 毕竟安装IIS、VS、创建网站以及开始测试不应该那么难吧?
谢谢您的协助。

1
你清楚吗?当你启动Visual Studio时,你右键点击它并选择“以管理员身份运行”选项了吗? - Aaron Carlson
你看过这个链接了吗?http://msdn.microsoft.com/en-us/library/dwesw3ee.aspx - Aaron Carlson
@Aaron,是的,我实际上已经将VS设置为始终以管理员身份运行。 - Dan C
@Aaron,我在发布这篇文章之前已经仔细阅读了该页面及其子页面,但没有发现需要做的事情。我的系统符合要求,并且网站的调试已经打开。我没有Windows Server 2003,因此没有在那里配置IIS。自从我不知道是否需要,所以没有触及任何安全设置。 - Dan C
不确定这是否有帮助,但我尝试在VS 2010中创建了一个新的ASP.NET 3.5 Web站点,并将其添加到IIS 7中,没有进行任何特殊配置,可以很好地进行调试。我的主应用程序与它在VS、IIS或甚至文件系统中的配置有关。只是不确定从哪里开始查找。 - Dan C
我知道你说你看了整篇文章,但是你尝试使用过“附加到进程”方法吗? - Aaron Carlson
31个回答

5

我最终解决了我的单一解决方案中遇到的这个问题。在解决方案中的两个项目被设置为 IIS 中的站点。我进去并为两个项目启用了 ASP.Net 模拟身份验证... 然后就没有再遇到这个令人烦恼的错误了!


5
这是我为了解决你提到的错误所做的。在文件系统中找到应用程序的网络文件夹,进入属性=>安全,点击高级按钮,然后点击所有者选项卡,点击编辑按钮并更改文件夹的所有者(具有正确权限),并勾选"替换子容器和对象上的所有者"复选框。点击"应用",然后就可以进行调试了。
希望这对其他人也有用。

2
更改所有者为谁? - dumbledad

3
如果应用程序池在重启时出现问题或者根本不想重启,请确认一下 Windows 最近是否对 ASP.NET v4.0 或其他应用程序池进行了更新。这就是我遇到的情况。我只需重启计算机,然后重新启动 ASP.NET v4.0 应用程序池,一切都恢复正常!

3

我在VS 2012中遇到了同样的错误信息,但没有以管理员身份运行。当我以管理员身份运行应用程序时,我得到了一个不同且稍微更有帮助的消息(我能够解决问题)。希望这对你有帮助。


2
当打开所有IIS窗口功能时,Windows 10也会出现同样的问题。转换到Windows 8.1后再次出现问题。根源在于网站名称“http://MySite.local”(与操作系统版本无关)。
解决方法很简单:
- 编辑hosts文件,路径为%SystemRoot%\System32\drivers\etc\ - 添加绑定IP地址的行:127.0.0.1 MySite.local

这对我来说是个宝藏,我完全忘记了设置我的主机文件,当我切换到本地iis(用于https)时,我想知道为什么我的API不起作用。VS只能运行一个站点,但一旦我添加了第二个,我就无法调试,这解决了问题。 - CDerrig

2

丹,

除了艾伦的建议,您可以尝试以下方法

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

我按照这里的步骤打开了集成的Windows身份验证:http://msdn.microsoft.com/en-us/library/x8a5axew.aspx,但我仍然遇到相同的错误(iis管理器显示警告,我不能同时使用挑战和基于登录的身份验证-我的网站使用表单身份验证)。我可以使用VS 2010内置的Web服务器调试网站,但它缺少一些功能。 - Dan C
你尝试在IIS中创建一个新的网站并将你的代码部署到那里了吗?好奇的是,如果你在Cassini中进行调试,你会缺少哪些功能呢?据我所知,Cassini支持表单身份验证。 - Keefu
“在IIS中创建一个新网站”是什么意思?这是一台新电脑,安装了新的操作系统、VS2010和IIS。我在IIS中创建了一个新的应用程序,并将其指向实际网站的文件夹(从备份中恢复)。在Cassini中,URL Rewrite似乎没有完全工作。此外,我们使用一个自定义模块来自动切换http和https(http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx)。 - Dan C
Cassini不支持Url Rewrite 2模块。 - citronas

1

我遇到了同样的问题。如果你在IIS上安装了SSL证书,并且想从Visual Studio进行调试,那么你需要将应用程序在IIS上设置为忽略证书。


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

1
我遇到了同样的问题,发现是因为在我的Web.config文件中,在结束标签后误打了一个字符。我的Web.config文件最后看起来像这样:</section>h。 "h"是关闭标签后的额外字符。

1
我在Windows 8.1上的Visual Studio 2012和2013也遇到了同样的问题。对于我来说,解决方法是使用“打开或关闭Windows功能”向IIS添加Windows身份验证。

Turn Windows features on or off screenshot


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接