调试ASP.NET MVC应用程序时,不会触发断点

时间:2009-04-09 03:29:45

标签: visual-studio debugging breakpoints

尝试调试ASP.NET MVC应用程序时,我的控制器中的断点不会受到影响。进入调试模式时,它们只显示一个带有警告三角形的空红色圆圈,而不是正常的整圆。这很奇怪,因为到目前为止调试工作正常,并且我的环境暂时没有进行任何配置更改。

我看过this question并查看了我的模块视图,并且没有加载正确的视图,但是我不知道如何解决这个问题。此外,所有相关的pdb文件都位于站点的bin文件夹中。

有关如何解决此问题的任何建议吗?

干杯!

编辑:该应用程序在IIS7上作为本地站点运行,我正在使用VS 2008进行调试

19 个答案:

答案 0 :(得分:37)

好的,浪费了4个小时后,我发现将我的web项目设置为启动项目解决了这个问题!这肯定是个错误......

我希望我能在那里拯救一半的人:)

答案 1 :(得分:9)

几种可能性:

  • 如果您的解决方案中有客户端和服务器(比如说WPF和WCF应用),请确保选择“multiple startup projects”。 [这个类似于您接受的答案,但如果您还需要运行客户端则很有用]

  • 为项目选择了发布模式。在新机器上进行新的获取(我今天发现)时,VS似乎希望切换到“发布”配置文件。

答案 2 :(得分:5)

某个团队成员删除了一个项目的调试配置(MVC项目)。虽然解决方案配置设置为" Debug / AnyCPU",如果您查看配置,则MVC项目的项目配置设置为Release,没有Debug选项和所有其他项目被适当地设置为Debug。

所以我将Debug添加回项目配置(只需下拉"添加" ...取消选中要添加到解决方案的框)。中提琴......

答案 3 :(得分:3)

要尝试的事情:

  1. 清理解决方案,然后重建它。

  2. 如果不起作用,请关闭解决方案,删除binobj文件夹,然后重建。

  3. 如果不起作用,请在执行步骤#2后重新启动IDE。
  4. 如果您正在调试IIS托管的ASP.NET项目,请确保已附加到正确的进程(w3wp.exe)。

答案 4 :(得分:3)

这些答案都没有帮助我。我的一些断点被击中,有些则没有。但我发现了我的问题。

如果文件位于完全相同的虚拟位置,并且名称与您尝试调试的URL完全相同,则IIS将自动将该文件提供给浏览器,并且不会触发断点,因为没有MVC代码实际上是跑了。

答案 5 :(得分:1)

当我遇到这个问题时,以下内容对我来说很有用:

查找项目dll缓存的位置(通常在ASP.NET Temprorary文件中)。然后关闭VS,执行IISRESET /停止(如果您使用的是IIS),删除dll缓存中的所有文件。执行IISRESET,启动VS,打开项目并重建它。

答案 6 :(得分:1)

将Visual Studio标头版本选项更改为“调试”

答案 7 :(得分:1)

我遇到了同样的问题。点击此处:工具 - >选项 - >调试

通过选择启用.Net Framework源步骤

进行修复

答案 8 :(得分:0)

大多数时候您的解决方案已更改为调试到发布模式。

https://www.youtube.com/watch?v=Tc-EamOXAcQ

答案 9 :(得分:0)

我已阅读并实施了以上所有建议,但无济于事。

对我有用的是,我只是将试图闯入的控制器动作更改为[HttpPost]。

我的问题是我试图调试一个装饰有[HttpGet]属性的方法,该方法路由到另一个视图,而不是击中断点,而是继续路由并显示返回视图。

希望这对某人有帮助!

快乐的编码。

答案 10 :(得分:0)

快速修复...

在Debug中运行我的项目。 清理并重建解决方案(MVC)。

重新运行UI项目,然后断点再次开始工作。

希望这会对某人有所帮助。

答案 11 :(得分:0)

我已在TFS中搁置了更改,并在已搁置的cs文件中设置了一个断点,而该断点已不再是解决方案的一部分。取回Shelveset后,一切正常。

答案 12 :(得分:0)

我的解决方案基本上是我的错误,因为我移动了项目文件夹。我的决议是,在我移动文件夹后,不要使用“打开...打开网站”,然后浏览到您的网站文件夹。不要浏览到您的解决方案.sln文件并打开它。相反,请使用“打开...项目/解决方案”,然后浏览到您的csproj文件并打开它。首先关闭IIS(Express)。重建。它应该运行最新的副本。 .sln每次都会搞砸你。

答案 13 :(得分:0)

我在Visual Studio 2015中遇到了类似的问题。我解决了这个问题,在阅读之后,简单的解决方法是将启动项目设置为正确的项目。由于我在同一个解决方案中有另一个Web API项目,我猜测我正在调试的项目混合了哪个index.html来调试,所以我将当前的一个重命名为index2.html。然后将项目属性Web选项卡设置为特定页面和页面文本:“index2.html”解决了问题。

答案 14 :(得分:0)

对以下内容可能有所帮助:

  1. 关闭Visual Studio
  2. 在IIS管理器中停止应用程序池
  3. 删除bin和obj文件夹
  4. 启动应用程序池
  5. 打开Visual Studio并重建解决方案

答案 15 :(得分:0)

确保您的编译框架版本与项目的编译框架相同。我遇到了这个问题,因为项目编译为4.5并且Web配置中的编译attrib试图将其调试为4.5 0.1。

答案 16 :(得分:0)

清洁/重建对我不起作用。 重启VS了。

VS 2012,ASP.NET MVC 3,IIS Express。

答案 17 :(得分:0)

我今天遇到了这个问题 - 然后发现它发生的原因是:

  1. Visual Studio 2008已崩溃,使Cassini(内部开发Web服务器)在原始端口上运行。

  2. 当我重新打开我的项目并“启动”它时,它无法在原始端口上运行,因为旧的开发Web服务器仍在运行(我没有注意到)

  3. 页面浏览得很好,但没有断点被点击,因为我使用的URL仍然指向旧的开发Web服务器端口。

答案 18 :(得分:0)

我遇到了同样的问题。 点击这里: 工具 - >选项 - >调试

检查脚本复选框。 运行该应用程序。

我收到了安装损坏的消息框,因此修复了vs 2008,并且 它现在正在工作。

相关问题