0

调试 MVC6 应用程序时遇到奇怪的情况。

在 Startup::Configure() 方法中,我在以下代码上设置了中断:

var junk = app.ApplicationServices.GetRequiredService<IOptions<AntiforgeryOptions>>().Value.CookieName;

我正在尝试查找特定于应用程序的防伪 cookie 名称。

表达式计算...但是当我尝试在监视窗口中查看“垃圾”的值时,我收到一条错误消息,大意是“垃圾”在当前上下文中不存在。

将鼠标悬停在代码窗口中的“垃圾”上会显示...什么也没有。就好像变量不存在一样。

OTOH,如果我在监视窗口中评估完全相同的代码,cookie 的名称将显示为结果值。

我在初始调用后添加了几行:

var junkLen = junk.Length;
var junk2 = junk;

它们的执行也没有任何问题,但是您无法在 Watch 窗口中检查它们,因为它们不存在 :)。

我从来没有见过这样的事情。有什么想法吗?

4

1 回答 1

0

原来这是最近发布的 VS 2015 Update 2 中最近报告的一个错误,该错误已由微软最近发布的补丁修复。您可以在http://go.microsoft.com/fwlink/?LinkID=785969&clcid=0x409找到。

包括补丁参考在内的讨论位于https://connect.microsoft.com/VisualStudio/feedback/details/1038150/visual-studio-2015-debugger-doesnt-recognize-a-variable

于 2016-04-30T02:21:50.063 回答