Visual Studio 2013没有遇到断点

Ken*_*mer 14 debugging asp.net-mvc visual-studio-2013

我正在使用Visual Studio 2013中的ASP.NET解决方案,该解决方案无法达到断点.Visual Studio将成功点击其他解决方案的断点,此解决方案中的断点以前有效.但此时他们无法工作.

我正在使用Visual Studio 2013 Ultimate,Update 4.这是安装在Windows 8.1,64位上.

这是一个包含3个项目的MVC解决方案:BusinessEntities,DataAccessLayer(DAL)和Web项目.所有这些项目中的断点都无法正常工作.我甚至在家庭控制器的Index ActionResult内部尝试了断点,但仍未能在断点处停止.

在Visual Studio功能区中,解决方案配置设置为Debug.此外,Configuration Manager显示我的所有3个项目都将配置设置为Debug.重新启动IIS,重新启动Visual Studio,并重新启动并没有解决此问题.选择Build> Clean Solution,Build> Rebuild,然后Debug> Start Debugging也没有修复它.

在web.config中,debug在此节点中设置为true:

  <system.web>
      <compilation debug="true" targetFramework="4.0" />
Run Code Online (Sandbox Code Playgroud)

我的项目的bin目录中有.pdb文件.我确认在清理解决方案时它们会被删除,并在重建时重新创建.

我还需要检查什么?我真的需要在此解决方案中使用断点.谢谢.

========

2014年12月30日的更新 - 根据@ paul.abbott.wa.us的评论,以下是我尝试过的几件事.我删除了几条评论,为了清楚起见,只是附在此处.

========

我正在通过VS启动应用程序,并在IIS下运行它.IIS的版本是8.5.在公开进程名称时(通过System.Diagnostics.Process.GetCurrentProcess().ProcessName),它是w3wp.

在IIS中,Web应用程序具有类似"local.mysite"的站点名称,并且在hosts文件中有匹配的条目.该站点使用DefaultAppPool,它使用.NET CLR版本4.0和集成管理管道模式.我的解决方案中的3个应用程序面向.NET Framework 4.

如果我将其切换回IIS Express,调试器将开始工作.IIS的版本更改为8.0,进程名称当然是iisexpress.从技术上讲,我不必在工作站上的IIS下运行它,但我更愿意这样做.我在IIS中错误配置或忽略了什么可能导致调试器失败?

在属性页面的Web选项卡上查看项目服务器设置,我注意到下拉列表设置为"IIS Express".切换到"本地IIS"后,系统提示我以管理员身份运行VS. 在这之后,我能够将服务器更改为本地IIS,并点击调试器.我检查了更改,关闭VS,启动VS不作为Admin运行,并加载解决方案.无法使用以下消息加载Web项目:Web应用程序项目[MySiteName]配置为使用IIS.无法访问IIS元数据库.您没有足够的权限访问计算机上的IIS网站.

最终,该站点的某些部分将采用Active Directory身份验证.那么,我是否需要在IIS Express下运行站点,或者如果我希望在IIS下运行站点,则始终以管理员身份运行VS?谢谢.

我找到了一个解决方案来解决"Web应用程序项目[MyApp]配置为使用IIS"的错误消息.无法访问IIS Metabase.您没有足够的权限访问计算机上的IIS网站."请按照此文章中的步骤操作. 错误 - 无法访问IIS元数据库

授予我的帐户访问intetsrv\config文件夹后,Web项目在Visual Studio中正确加载,而无需以管理员身份运行VS.

但现在当我启动该站点时,会出现另一个警告:"无法在Web服务器上启动调试.IIS未列出与启动的URL匹配的网站.单击"帮助"以获取更多信息."最初我只是单击"创建虚拟目录"并再次启动,但同样的警报再次出现.

所以我从警报中选择了"帮助"按钮.这导致了这个MSDN页面,该页面提出了大约2个要检查的内容,其中大约一半的链接到其他文章.我现在感觉有点像爱丽丝梦游仙境,沿着兔子洞向下走.

2015年2月3日更新:我在本地IIS实例上运行此方法时的解决方法是将Visual Studio作为管理员运行.最终,我们更改了应用程序以使用IIS Express,然后放弃了应用程序,以寻找同事建立的另一个解决方案.这个决定与这个问题无关.感谢大家的反馈和想法.

2016年3月7日更新:在这个时候,我无法复制这个问题,因为我们不再有它在哪里,当我在它去年的工作状态的解决方案.如果主持人可以解决这个问题,我将不胜感激.关闭此选项的选项与我当前的场景不一致,但如果他们遇到此场景,其他人可能会发现以下建议很有用.感谢所有提出建议的人.

Mos*_*afa 1

根据我之前的经验,请考虑以下几点:

  • 检查您是否已将断点放在正确的位置并且正在运行适当的页面或控制器
  • 右键单击断点 => 位置 => 选中“允许源代码与原始版本不同”。如果您安装了 resharper ,它可能会有帮助。

  • 如果您通过 Ajax 调用,请确保页面上没有 java-script 错误(对于此 IE 默认情况下捕获 js 错误)

  • 有时是因为构建不彻底,所以清理解决方案(右键单击解决方案并选择“ clean solution”项)然后“ Rebuild Solution”。

  • 有时是因为您可能禁用了某些类库的构建选项,因此在这种情况下您需要专门重建这些类库。Configuration Manager(可以通过“ ”菜单中选择“ ”项查看Build

希望这些有帮助