在IIS7中运行ASP.NET MVC视图时无法设置断点

3

我被迫使用IIS7,因为Casini只支持x86,而我们正在使用x64 ELMAH。

自从我切换后,我注意到一个问题,就是我不能再在ASP.NET MVC视图中设置断点了。我不确定是否是因为IIS7,你有这种情况吗?

Visual Studio(2008)项目配置为使用本地的IIS7。我通常通过按F5来运行项目,实际上并没有运行任何东西。它只编译代码并附加到相应的IIS7进程。

断点的限制现在在我的环境中非常严格。如果我右键单击视图中的代码片段,就会出现一个“断点”子菜单,就像以前一样,里面有插入断点选项。但是当我尝试插入断点时,Visual Studio底部会出现一个蓝色消息:

这不是断点的有效位置。

然后就无法设置断点了。在已编译的代码中设置断点(如控制器)则没有问题。

有没有办法在视图中设置断点呢?


你是通过附加到工作进程还是按 F5 键来进行调试的? - FlySwat
我正在按F5键,但是由于我已经配置了项目使用我的本地IIS7,它实际上所做的是编译代码并附加到进程。我将相应地扩展问题。 - pupeno
6个回答

6

您需要确保在实际的服务器端进行断点调试!

显然,您无法在以下情况下进行断点调试:

<h2>Title<h2>

也许令人惊讶的是,您无法在以下情况下中断:

@SomeCode here

但你可以在以下情况下中断:

@{
SomeCodeHere
}

0

我曾经遇到同样的问题,然后安装了ASP.NET 5 RC1 Update 1,结果情况变得更糟。

我通过删除%appdatalocal%/Microsoft/VisualStudio/14.0文件夹中的ComponentModelCache文件夹来解决这个问题。


0

您可以尝试将进程(Ctrl+Alt+P)附加到w3wp.exe并从那里运行它。如果有多个w3wp.exe进程在运行,请考虑使用InfoPath MSDN blog中的提示。

话虽如此,被“强制使用IIS7”而不是Cassini就像被迫选择冰淇淋而不是生下水道一样。


使用Ctrl+Alt+P附加与按F5附加相比,对于断点设置并没有任何区别。我更喜欢带有断点的污水,而不是带有痛苦调试的冰淇淋。 - pupeno
嗯..除了检查一切是否更新之外,我只能建议您查看IIS.net上的文章:http://learn.iis.net/page.aspx/387/using-visual-studio-2008-with-iis-70/. - Dan Atkinson

0

尝试以管理员身份运行VS,我在尝试附加到IIS7 w3wp.exe时遇到了这个问题。我以管理员身份启动我的程序,然后一切正常。


我已经以管理员身份运行它了,否则项目根本无法打开。 - pupeno
你正在使用哪个版本的Windows?如果你正在运行Windows 7或某个变体的Vista,你可以右键单击VS 2008的快捷方式,选择以管理员身份运行(假设你的用户帐户具有管理员权限)。然后从那里打开你的项目并附加到工作进程(w3wp.exe很可能正在以管理员身份运行)。 - Kyle LeNeau

-1

你能在代码的其他地方设置断点吗?

我个人从未在视图中设置过断点,你是否尝试在控制器中设置断点,然后从那里步入视图?

你在视图中尝试调试什么?视图应该保持简洁明了,不包含逻辑。这就是为什么我从未需要调试视图的原因。


是的,我可以在任何地方设置断点,并且在使用Casini时可以在视图中设置断点。不确定是否可以在进入视图之前设置断点并进行步骤,我认为不行。 - pupeno
我已经成功设置了断点和操作,然后它会逐步进入视图。你还有这个问题吗?如果有的话,今晚我会尝试使用IIS。 - Andy Long

-3

在此启用HTML的行号

Tool -> Options -> Text Editor -> HTML -> General

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接