15

我试图在 Visual Studio 2010 中的 ASP.Net MVC 2 应用程序的 .ascx 或 .aspx 文件中的下面提到的页面上放置一个断点。但它不会让我这样做,它显示:

“这不是断点的有效位置”

早些时候它确实有效。这是为什么?任何帮助表示赞赏。

我的 .ascx 页面如下所示:

在此处输入图像描述

编辑 1

.cs 文件可以正常工作。不能仅在 .aspx 和 .ascx 文件上工作

编辑 2

下面提到的评论部分的链接都没有为这个问题提供解决方案。因为我们不能只为调试添加代码库的额外代码。所以有什么方法可以为我的激活红色标记(调试标记)查看图片中提到的 c# 代码?

编辑 3

它适用于同一文件上的 javascript 标记,但不适用于 c# 代码。任何线索?

在此处输入图像描述

编辑 4

上述问题是在我为 .NET 安装 Windows Azure SDK 之后出现的 - 2012 年 10 月

当我编译代码时,它会给出如下所示的Waring 消息。

在此处输入图像描述

4

4 回答 4

20

如果您在 Visual Studio 2012 中使用 Asp.Net Mvc 5,但未安装正确的工具,则会出现此问题。对我来说,这是因为我通过 Nuget 将我的 Asp.Net Mvc 4 版本升级到了版本 5。但是,这并没有在 VS 2012 中安装工具,因此 IDE 可以正确解析和处理.cshtml文件。因此,没有任何 razor 代码显示为有效的 C#,并且无法设置任何断点(如果您尝试设置它,则会出现错误“这不是断点的有效位置”)。

解决方案是安装适当的工具。(或直接链接)安装工具并重新启动 VS 后,我能够再次愉快地在.cshtml文件中设置断点。

于 2014-05-02T18:05:10.733 回答
7

查看屏幕截图中代码块的内容<% %>表明语法未突出显示。通常这意味着 VS 没有识别出该块包含服务器端 C# 代码。

它适用于 Javascript,因为 VS 可以将其识别为客户端脚本并对其进行中断。

修复语法高亮,你也可以打破它。

通常会发生这种情况,因为 VS 在 HTML 编辑(具有某种视觉预览)和 C# 代码之间切换非常困难,并且偶尔会出错。

最常见的原因是Language.aspx 或 .ascx 文件顶部缺少指令:

<%@ Page Language="C#" ...

或者

<%@ Control Language="C#" ...

您还可以尝试显式代码块,例如:

<script type="text/C#" runat="server"> ...

这也可能是由嵌套的 .master 页面引起的:尝试清除 ReflectedSchemas 文件夹:%appdata%\Microsoft\VisualStudio\10.0\ReflectedSchemas\

众所周知,删除 ReSharper 试用会导致此问题

最后,有时这只是 VS 的一部分 - 尝试重新启动,如果这不起作用,请尝试重新组织文件并再次重新启动。愚蠢(我知道),但有时这会促使 VS 弄清楚。

顺便说一句,这是他们在 VS 2012 中显着改进的地方

于 2012-12-20T15:34:16.247 回答
1

在@Keith展示了语法突出显示问题后,我从上到下浏览了我的文件,反之亦然。然后我发现了问题。

正如我在上面的EDIT 4中显示的那样,我的项目中有一条警告消息。

在我解决了这个问题之后,刹车点(调试)问题也消失了。

为此,我使用了下面提到的链接。

无法加载文件或程序集“msshrtmi” - Azure 部署中的格式不正确

将来我会写一个完整的分步指南来展示如何摆脱这个问题。

感谢每一位给予我支持的人。

于 2012-12-20T19:23:14.373 回答
1

这是Visual Studio 2013 中的错误。它应该在更新2(或更高版本)中修复。
也就是说,更新只是暂时解决了我自己的问题。

于 2014-12-15T11:07:45.160 回答