我在Visual Studio 2010中收到错误消息“无法在Web服务器上启动调试”。我单击“帮助”按钮并按照相关建议进行操作,但没有成功。
当修改为使用IIS而不是Cassini(用于调试)时,新创建的本地ASP.Net项目会发生这种情况。它会提示在web.config中设置debug =“true”,然后立即弹出错误。事件查看器中没有显示任何内容。
我可以附加到w3wp进行调试。它有效但不如F5方便。
我在同一台PC上也遇到类似VS2008的问题。调试过去常用于两者。
我重新注册了Framework 4(aspnet_regiis -i)。我运行VS2010修复(这是RTM版本)。我在Windows Server 2008 R2 x64机器上运行。
我安装了Resharper V5。
必须有一些配置设置或注册表值能够在修复过程中幸免于此。
我很感激任何想法。
答案 0 :(得分:14)
禁用环回检查
(original microsoft page here)
要设置DisableLoopbackCheck注册表项,请按照下列步骤操作:
单击“开始”,单击“运行”,键入regedit,然后单击“确定”。
在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制\ LSA
右键单击“Lsa”,指向“新建”,然后单击“DWORD值”。
键入DisableLoopbackCheck,然后按ENTER键。
右键单击“DisableLoopbackCheck”,然后单击“修改”。
在“数值数据”框中,键入1,然后单击“确定”。
退出注册表编辑器,然后重新启动计算机。
答案 1 :(得分:12)
我有一台Windows 7
的新电脑。我安装了VS2010
和我的开发环境,希望我的F5调试问题不复存在,但它仍然无法启动调试器。
这是一个很好的线索,因为它排除了软件的安装。
我终于将其追溯到我的HOSTS文件。我有一些我可以访问的本地网站的条目,例如“http://testsite.lcl”但我分配的IP是我的机器的IP而不是127.0.0.1
所以它看起来像VS2010的远程服务器。更改回127.0.0.1
解决了问题。
感谢大家的帮助。
答案 2 :(得分:10)
我遇到了同样的问题。我是如何修理的。
转到IIS(在我的情况下是IIS 7 / Windows 7)。 从列表中选择您的网站,单击ASP.NET部分中的.NET编译。选择打开功能。检查Debug是否设置为True。在我的情况下它是假的。一旦我将其更改为True - 我将调试回来:)
答案 3 :(得分:6)
这些步骤因您的Windows版本而异。我正在使用7和iis 7。
打开IIS管理器,单击“应用程序池”,找到2个ASP.NET v4.0池(一个称为“ASP.NET v4.0”,另一个称为“ASP.NET v4.0 Classic”。机会是第一个一个人停了。不要再开始了,我们需要进一步研究。
对于“ASP.NET v4.0”池,请检查“标识字段”中的名称。它是ApplicationPoolIdentity吗?记住这个名字。
打开“计算机管理”(右键单击“我的电脑”,然后选择“管理”)。展开事件查看器,然后展开Windows日志。单击Application并等待加载数据。用户配置文件服务来源应该出现错误,其中的消息以“Windows无法登录您,因为您的配置文件无法加载。检查您是否已连接到网络,以及您的网络运行正常。”< / p>
如果你确实找到了,那么你和我一样有问题。
解决方案:返回IIS管理器并右键单击“ASP.NET v4.0”并选择“高级设置”。在Process Model下,第一个字段是Identity。将其从ApplicationPoolIdentity更改为NetworkService。单击“确定”。
现在启动池,如果它没有自动重启。返回到您的应用程序并按F5(开始调试),您的应用程序应该可以正常工作。
请注意,我还没弄清楚为什么会这样,这可能会带来安全风险,但至少在考虑这个问题时你可以做一些工作。
答案 4 :(得分:4)
运行我在Visual Studio 2010中创建的网站时,我在Visual Studio 2012中遇到此问题。我尝试了以下各项,但没有解决问题,但仍可能需要:
检查应用程序池的目标是否与web.config中指定的框架相同
<compilation defaultLanguage="c#" debug="true" targetFramework="4.0">
启动64位远程调试器:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Remote Debugger \ x64 \ msvsmon.exe
设置DisableLoopbackCheck注册表项并重新启动Windows。 MS Instructions here
在本地浏览网站(结果很好)。
最后我找到了修复问题的IIS设置。
答案 5 :(得分:3)
您可以先使用iis部署Web应用程序/站点,然后打开Visual Studio 2010.然后单击“文件” - >打开 - >网站 - >本地IIS站点,然后选择您的网站/应用程序。然后你会发现调试可能有效。这种方法适用于我的情况。
答案 6 :(得分:3)
我在Win7和VS2010(没有ReSharper)上遇到了同样的问题,发现Skype在端口80上侦听。默认情况下,IIS侦听端口80。将VS设置为调试在IIS中运行的现有Web应用程序而不是内置的ASP.NET调试Web服务器时,可能会发生这种情况。
我通过取消选中“使用端口80和443作为传入连接的替代方案”解决了这个问题。在Skype下的工具 - &gt;选项 - &gt;连接,然后重启Skype。
答案 7 :(得分:2)
对我有用的是在服务器级别进入IIS,单击ISAPI和CGI限制,我发现asp.net 4.0的aspnet_isapi.dll设置为Not Allowed。我把它设置为允许和调试工作。步骤是:
此更改应解决问题。请注意,当我尝试使用调试运行Web应用程序时,我想出了这个解决方案,我想出了以下错误:
HTTP错误404.2 - 未找到 由于Web服务器上的ISAPI和CGI限制列表设置,无法提供您请求的页面。
答案 8 :(得分:1)
要尝试的另一件事(这对我有用):
在IIS中,单击“应用程序池”&gt; (您的网站)&gt;高级设置,并更改&#34;启用32位应用程序&#34;真实。
答案 9 :(得分:0)
就我而言,web.config中的system.webServer > httpErrors > errorMode
导致了问题。
如果你有errorMode="Custom"
试试这个:
<httpErrors errorMode="DetailedLocalOnly">
请参阅此回答:https://stackoverflow.com/a/15585629/631277了解有关网址重写的变体和其他想法
答案 10 :(得分:0)
我在Visual Studio 2013中遇到了同样的问题。在我的情况下,我删除了&#34;默认网站&#34;来自IIS。要解决此问题,我再次创建了默认网站,将物理路径设置为C:\ inetpub \ wwwroot,将端口设置为80(默认端口)。重新启动Visual Studio后,它工作得很好。希望它可以帮到某人。
答案 11 :(得分:0)
您是否在IIS网站上更改了绑定?如果是这样,您需要转到项目属性,选择Web选项卡,然后更改项目URL以匹配您的绑定。所以它说http:/// yourwebsite将其更改为http:/// yourwebsite
这对我有用。
答案 12 :(得分:0)
我尝试了每个解决此问题的解决方案,似乎没有任何工作能够持续发挥作用。
我最终在2010年和2012年通过将其跟踪到调试源文件设置中的以下缺失文件来解决它
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc\
解决方案&gt;属性&gt;调试源文件&gt;
检查以确保所有文件都在那里然后删除此条目,一切都恢复正常。
答案 13 :(得分:0)
无法在Web服务器上启动调试。 Web服务器配置不正确。
如何解决此问题?
步骤-1
打开命令提示符(以管理员身份运行)
步骤-2
C:\ Windows \ System32下&GT; CD ..
C:\ Windows&gt; cd Microsoft.NET
C:\ Windows \ Microsoft.NET&gt; cd Framework
C:\ Windows \ Microsoft.NET \ Framework&gt; cd v4.0.30319
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319&gt; aspnet_regiis.exe -i
答案 14 :(得分:0)
也可能是因为您的配置文件中有一些特殊或非法的格式,我建议您先检查一下。
在我的情况下,我遇到了错误,因为当我尝试从IIS浏览我的服务时,它向我显示了真正的错误。
答案 15 :(得分:0)
卸载项目,右键单击“编辑abc.csproj”您将看到配置。 如果您的项目已映射为使用IIS Web Express URL。
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>6270</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://matrimonyfree.in/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
验证您是否已在IIS中启动该网站 在这种情况下http://matrimonyfree.in
答案 16 :(得分:0)
尝试了上述所有解决方案之后,我仍然遇到了这个问题。其他项目没有问题调试,所以我知道它必须与这个特定应用程序的配置有关。
Mine是在IIS 8下运行的MVC应用程序。问题在于URL重写。
我有一条规则来强制使用尾部斜杠。我所要做的只是禁用它(可以直接在IIS中完成,或者通过下面的web.config - 只需设置enabled =“false”)
<rewrite>
<rules>
<rule name="AddTrailingSlashRule1" enabled="false" stopProcessing="true">
<match url="(.*[^/])$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}/" />
</rule>
</rules>
</rewrite>
答案 17 :(得分:0)
检查以下路径中是否存在msvsmon.exe(Visual Studio远程调试监视器)文件: C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Remote Debugger \ x64
如果文件没有在上述路径中保留,那么您需要从具有相同版本的Visualstudio的任何其他计算机上获取它。
答案 18 :(得分:0)
我遇到了同样的问题,在我的情况下,它发生了,因为AppPool标识设置为模拟已更改密码的AD用户。因此,尝试从VS调试时,进程无法启动,AppPool始终停止。
在AppPool / Advanced Settings / Identity中更新密码后,一切都开始顺利进行。
答案 19 :(得分:0)
对我有用的是编辑C:\ Windows \ System32 \ drivers \ etc文件夹中的HOSTS文件,并为我设置的网站名称设置环回。
例如:
127.0.0.1 http://guyellisrocks.com/
答案 20 :(得分:0)
我是在新安装的Windows 7之后得到的,默认情况下不包含IIS。安装IIS后,创建默认应用程序池以在.NET 2.0下运行。虽然我能够从.net 2将默认应用程序池设置为.net 4,但我仍然遇到此错误。我不得不在IIS中重新安装.net 4以使其正常工作。也就是说,运行C:\ Windows \ Microsoft.NET {FrameworkFolder} \ v {FrameworkNumber} \ aspnet_regiis -i
答案 21 :(得分:0)
在目录安全选项卡的IIS中,如果使用SSL,请在本地PC中运行“忽略客户端证书”。
答案 22 :(得分:0)
您还没有提到您正在使用的操作系统。但这可能与操作系统无关。我在这里猜测。如果您在Windows 7上运行,请尝试在Administrator previlages下运行visual studio。
您还可以尝试将用户ID添加到VS调试器用户组。您可以通过单击计算机名称或计算机并选择“管理”来访问用户组。在此之下,您可以找到用户&amp;基团。
答案 23 :(得分:0)
虽然这些文章可能有一些有用的信息,但我没有明确的答案:
Using Windbg to start with w3wp.exe这具体提到了windbg / cdb调试器,但是这个建议应该适用于Visual Studio与cdb(附加到w3wp)的对话。
Remote debugging with Visual Studio我提到远程调试的原因是我过去曾经多次使用它来让Visual Studio连接到w3wp.exe。 W3wp.exe在不同的会话中运行,因此您无法直接将调试器附加到该会话。
答案 24 :(得分:-1)
Visual Studio中的解决方案文件已损坏。从文件系统网站转换到IIS网站时,这是一个已知的问题,并且从2008年到2010年已经延续。但不确定ms的kb站点上的错误报告的位置。
从解决方案文件中删除网站(右键单击项目名称,单击“删除”)。然后右键单击解决方案名称,单击“添加现有网站”。当出现添加网站的对话框时,请从左侧窗格中选择“从IIS”。导航到IIS中的应用程序,如有必要,选择“使用安全套接字层”,然后单击“完成”(或任何标记的按钮)。
这将永久解决问题。
答案 25 :(得分:-1)
无法在Web服务器上启动调试。 Web服务器配置不正确。
如何解决此问题?
步骤1
打开命令提示符(以管理员身份运行)
步骤-2
C:\ Windows \ System32下&GT; CD ..
C:\ Windows&gt; cd Microsoft.NET
C:\ Windows \ Microsoft.NET&gt; cd Framework
C:\ Windows \ Microsoft.NET \ Framework&gt; cd v4.0.30319
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319&gt; aspnet_regiis.exe -i Microsoft(R)ASP.NET RegIIS版本4.0.30319.0管理 用于在本地计算机上安装和卸载ASP.NET的实用程序。 版权所有(C)Microsoft Corporation。版权所有。开始 安装ASP.NET(4.0.30319.0)。 ..................完了 安装ASP.NET(4.0.30319.0)。
C:\的Windows \ Microsoft.NET \框架\ v4.0.30319&GT;
答案 26 :(得分:-2)
要检查的一件事是确保IIS是否已启动并正在运行。这样简单的事情有时会解决这个问题。