1

我正在试用最新的 Visual Studio,但使用 ViewBag 动态变量调试最基本的 MVC 应用程序让我很头疼。

我在 32 位 Windows 8 操作系统下运行 Visual Studio 2013,并进行了全新安装并应用了每个可用的更新。

我创建了新的 ASP.NET Web 应用程序(.NET Framework 4.5 - 新解决方案),其中包含 MVC 的文件夹和核心引用,之后我添加了带有一些元素代码的示例 Home 控制器:

dynamic d1 = 1;
dynamic d2 = 2;

ViewData["Vd1"] = 1;
ViewData["Vd2"] = 2;

ViewBag.Vb1 = 1;
ViewBag.Vb2 = 2;

在第一行打断点并跳到第二行,直到 ViewBag 属性正常工作(立即) - 然后,在输出窗口中我得到:

Microsoft.CSharp.dll 中出现了“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”类型的第一次机会异常

...并进入第二行(ViewBag.Vb2 ...)花了几秒钟。我测试了不同的动态变量以确保问题出在 ViewBag 属性上。

是什么导致了 IIS Express 下的异常和如此缓慢的调试?大量使用 ViewBag 属性使调试成为一场噩梦!

再次调用 Debug 下的脚本不会导致异常,并且调试工作正常,因为调试符号都已加载(猜测)。

我在 Stack Overflow 和网络上尝试了很多不同的建议,但都不起作用!

4

2 回答 2

1

在提高 Visual Studio 2013 ASP .NET 应用程序(MVC 和 Web 窗体)的调试速度方面被忽视且从未报告过的问题之一是禁用浏览器链接。这是 VS 2013 中的一项新功能,它会导致大量开销并导致页面加载速度极慢(在我的大多数情况下为 5-10 秒)。禁用它会使其恢复到 Visual Studio 2012 的速度。

请参阅此处了解如何禁用它:

http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx

于 2014-01-02T21:03:07.900 回答
0

对我有用的是选择 Internet Explorer 以外的其他浏览器。如果我使用 Chrome 或 Firefox,调试速度很快。关闭浏览器链接对我来说对 Internet Explorer 没有帮助。

这是有关如何在调试时更改为另一个浏览器的链接。

http://www.asp.net/visual-studio/overview/2013/using-browser-link#browser-refresh

于 2014-03-25T16:45:00.103 回答