尝试调试ASP.NET MVC应用程序时,我的控制器中的断点不会受到影响。进入调试模式时,它们只显示一个带有警告三角形的空红色圆圈,而不是正常的整圆。这很奇怪,因为到目前为止调试工作正常,并且我的环境暂时没有进行任何配置更改。
我看过this question并查看了我的模块视图,并且没有加载正确的视图,但是我不知道如何解决这个问题。此外,所有相关的pdb文件都位于站点的bin文件夹中。
有关如何解决此问题的任何建议吗?
干杯!
编辑:该应用程序在IIS7上作为本地站点运行,我正在使用VS 2008进行调试
答案 0 :(得分:37)
好的,浪费了4个小时后,我发现将我的web项目设置为启动项目解决了这个问题!这肯定是个错误......
我希望我能在那里拯救一半的人:)
答案 1 :(得分:9)
几种可能性:
如果您的解决方案中有客户端和服务器(比如说WPF和WCF应用),请确保选择“multiple startup projects”。 [这个类似于您接受的答案,但如果您还需要运行客户端则很有用]
为项目选择了发布模式。在新机器上进行新的获取(我今天发现)时,VS似乎希望切换到“发布”配置文件。
答案 2 :(得分:5)
某个团队成员删除了一个项目的调试配置(MVC项目)。虽然解决方案配置设置为" Debug / AnyCPU",如果您查看配置,则MVC项目的项目配置设置为Release,没有Debug选项和所有其他项目被适当地设置为Debug。
所以我将Debug添加回项目配置(只需下拉"添加" ...取消选中要添加到解决方案的框)。中提琴......
答案 3 :(得分:3)
要尝试的事情:
清理解决方案,然后重建它。
如果不起作用,请关闭解决方案,删除bin
和obj
文件夹,然后重建。
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)
大多数时候您的解决方案已更改为调试到发布模式。
答案 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)
对以下内容可能有所帮助:
答案 15 :(得分:0)
确保您的编译框架版本与项目的编译框架相同。我遇到了这个问题,因为项目编译为4.5并且Web配置中的编译attrib试图将其调试为4.5 0.1。
答案 16 :(得分:0)
清洁/重建对我不起作用。 重启VS了。
VS 2012,ASP.NET MVC 3,IIS Express。
答案 17 :(得分:0)
我今天遇到了这个问题 - 然后发现它发生的原因是:
Visual Studio 2008已崩溃,使Cassini(内部开发Web服务器)在原始端口上运行。
当我重新打开我的项目并“启动”它时,它无法在原始端口上运行,因为旧的开发Web服务器仍在运行(我没有注意到)
页面浏览得很好,但没有断点被点击,因为我使用的URL仍然指向旧的开发Web服务器端口。
答案 18 :(得分:0)
我遇到了同样的问题。 点击这里: 工具 - >选项 - >调试
检查脚本复选框。 运行该应用程序。
我收到了安装损坏的消息框,因此修复了vs 2008,并且 它现在正在工作。