Visual Studio断点没有被击中

My *_*eth 50 iis asp.net-mvc visual-studio visual-studio-debugging visual-studio-2013

我正在使用ASP.NET MVC项目,该项目在连接到IIS进程(w3wp.exe)时似乎遇到了一些问题.我在我自己的本地计算机上运行解决方案和IIS 8.5,所以我不认为这与我们的网络有任何关系.对我来说很奇怪的是,我能够在我本地调试的任何其他解决方案上达到断点.

我所拥有的问题是,断点转向红色,空心圆圈,永远不会被击中.通常,对此的修复是对解决方案的清理/重建,但这没有奏效.我已经确认通过向页面添加"throw new Exception"并确保它显示异常来更新代码.同样,这个问题只发生在这个问题上.我运行调试器的任何其他解决方案都可以正常工作.我也尝试重新启动应用程序池,网站,IIS以及我的计算机.

我读过的一些文章提到反病毒程序可以阻止远程调试器访问进程.但是,整个设置包含在我的本地计算机上,因此听起来不是问题.它确实让我有点担心,因为我们最近雇用了一个新的IT人员,他们正在对每个人的机器做出很多改变.

另外一点是添加这个Web应用程序的独特之处是IIS中的绑定.绑定是"*",以便利用与子域相关的一些自定义功能.

与此同时,我将继续寻找解决方案,但如果有人有任何想法可能导致这个解决方案无法正确调试我真的很感激.

编辑:找到建议删除ASP.NET临时文件的解决方案.没运气.

My *_*eth 67

解决了.结束是在调试菜单中选择的错误配置.我错误地将其切换到无法加载文档符号的发布配置.将它切换到调试配置,现在断点就好了.

要添加Abacus下面提到的内容,它也可能是一个搞乱你的构建的web.config转换.在我们的例子中,我们有Release配置debug从web.config的编译部分删除属性.下面是一个示例和Visual Studio的构建配置下拉列表的屏幕截图.

注意:还要确保您的平台与配置一致.在我的情况下,Dev.Debug|Mixed Platforms没有正确构建解决方案,但Dev.Debug|Any CPU会.

构建配置列表

  • 只是为了澄清解决这个问题的步骤:项目,属性,构建,高级,检查"调试信息"的值.如果设置为"none",则无法在Visual Studio中捕获代码. (7认同)

小智 29

启用"托管兼容模式".转到工具 - >选项 - >调试并启用托管兼容模式.


Ans*_*elm 21

我一直在努力解决这个问题.最后这就是为我做的事情.

选择 Debug-> Options-> Debugging-> General

Tick 启用.NET Framework源步进.

(这可能是您需要做的所有事情,但如果您像我一样,您还必须执行下面所述的操作.下面的解决方案还将修复项目加载旧程序集/ .pdb文件的错误,尽管重建和清理.)

选择 工具 - >选项 - >项目和解决方案 - >构建和运行,

取消选中" 仅在运行时构建启动项目和依赖项 "复选框,

从" 运行时,项目已过期 "下拉列表中选择始终构建.


kro*_*olk 16

我知道这不是OP的问题,但我在项目上发生了这种情况.该解决方案有多个MVC项目,错误的项目被设置为启动.

我还设置了项目的配置,只是启动进程/调试器,而不是打开一个新的浏览器窗口.

Visual Studio项目属性

所以表面上看起来好像调试器正在启动,但是对于错误的进程它是这样做的.因此请检查并记住您也可以附加到多个进程.

愚蠢的错误让我摸不着头脑约30分钟.

附加到两个进程


may*_*ank 16

在我的情况下,此解决方案很有用:

解决方案:禁用调试/常规设置中的“仅我的代码”选项。

![在此处输入图片说明

参考:c-sharpcorner


小智 8

右键单击您的项目,然后左键单击" 属性",并选择" Web"选项卡.

验证是否为您的案例选择了正确的服务器:

  • IIS本地

  • IIS Express


小智 5

通过取消选中

属性>构建>优化代码

网页属性屏幕上的设置(在常规下)。

屏幕截图。


小智 5

转到 Visual Studio 菜单:

调试 -> 附加到进程

然后点击选择按钮,如下图:

附加到进程

然后确保选择了“自动确定要调试的代码类型”选项,如下所示:

选择代码类型