Visual Studio 2013 - 使用 ViewBag 属性调试 MVC 代码非常缓慢且无法使用。

31 浏览
0 Comments

Visual Studio 2013 - 使用 ViewBag 属性调试 MVC 代码非常缓慢且无法使用。

我正在尝试最新的Visual Studio,但是使用ViewBag动态变量调试最基本的MVC应用程序给我带来了很多麻烦。

我正在运行32位Windows 8操作系统下的Visual Studio 2013,进行了干净安装并应用了所有可用的更新。

我创建了一个新的ASP.NET Web应用程序(.NET Framework 4.5 - 新解决方案),在添加了用于MVC的文件夹和核心引用后,我添加了一个带有一些元素代码的示例HomeController:

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和其他网络上提供的许多不同建议,但都没有起作用!

0
0 Comments

问题的原因:使用ViewBag属性在Visual Studio 2013调试MVC代码时非常缓慢甚至无法使用的原因是因为启用了Browser Link功能,该功能导致了大量的开销和页面加载极慢(在大多数情况下为5-10秒)。

解决方法:禁用Browser Link功能可以恢复到Visual Studio 2012的速度。禁用方法可以参考以下链接:

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

0
0 Comments

问题原因:在使用ViewBag属性调试MVC代码时,使用Internet Explorer浏览器会导致调试速度非常慢甚至无法使用。

解决方法:选择除了Internet Explorer以外的其他浏览器进行调试。使用Chrome或Firefox浏览器进行调试时,调试速度非常快。关闭浏览器链接并不能解决Internet Explorer的问题。

参考链接:[http://www.asp.net/visual-studio/overview/2013/using-browser-link#browser-refresh](http://www.asp.net/visual-studio/overview/2013/using-browser-link#browser-refresh)

0