Asp.net mvc 加载符号时,Visual Studio调试速度非常慢

Asp.net mvc 加载符号时,Visual Studio调试速度非常慢,asp.net-mvc,visual-studio,visual-studio-2012,iis-express,Asp.net Mvc,Visual Studio,Visual Studio 2012,Iis Express,我有一个问题,这实际上是类似的,但我还没有设法找到一个解决办法,这样的问题 我已经尝试了该问题中描述的所有内容,但是,第一次加载符号的速度非常慢 与另一个问题类似,在启动MVC项目时,我在输出面板中得到了几行内容,这些内容类似于: 'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\02ba097f\a

我有一个问题,这实际上是类似的,但我还没有设法找到一个解决办法,这样的问题

我已经尝试了该问题中描述的所有内容,但是,第一次加载符号的速度非常慢

与另一个问题类似,在启动MVC项目时,我在输出面板中得到了几行内容,这些内容类似于:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\02ba097f\ab73cbf7\App_Web__headerusermenu.cshtml.ee708ea.myhgafpb.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\02ba097f\ab73cbf7\App_Web__layoutcmsbase.cshtml.ce72eb6d.ovoanhe-.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\02ba097f\ab73cbf7\App_Web__notificationmessage.cshtml.5346933.9aei7ems.dll', Symbols loaded.
这样的条目每个大约需要300-500毫秒,这些是为我们在项目中的所有局部视图执行的,这是相当可观的

我尝试了另一个问题的解决方案,但仍然没有得到任何快速的响应时间

以下是我们进行的一些测试:

使用iisexpress
  • 加载网站最初大约需要2分钟
  • 停止网站并重新启动大约需要1分钟45秒
  • 一旦网站运行,我按下加载所有符号(工具>操作>调试>符号>加载所有符号),然后停止项目并再次运行,所需时间大大减少,大约25秒。尽管如此,在项目未运行时,Load All Symbols(加载所有符号)按钮仍处于禁用状态,因此第一次,我需要等到项目加载完毕,才能按Load All Symbols(加载所有符号)
使用VisualStudioDevelopmentServer
  • 开始时,大约需要50秒
  • 停止项目并重新启动,大约需要20秒
  • 单击“加载所有符号”,停止项目并再次启动大约需要15秒
这非常令人沮丧,因为第一次加载项目需要花费非常长的时间


除了问题中提到的可能有帮助的解决方案之外,还有其他可能的解决方案吗?

您是否尝试过绕过IIS express并从本地IIS服务器运行应用程序?url看起来像这样:localhost/{yourprojectname}。第一次运行应用程序时,加载速度可能仍然很慢,但在这之后,它应该保持相当快的速度,因为VisualStudio不会在每次运行应用程序时都启动它。从本地IIS运行应用程序还允许您在启动调试器时保持Firefox打开,而不是每次打开和关闭IE。

在本地网络共享上托管项目时,我也遇到了同样的问题。将其移动到本地系统可将符号加载时间减少90%

在我的例子中,我在VS中打开了一个文件,它不是我当前解决方案的一部分(它碰巧是一个XML文件,我用断点标记了它以供快速参考)。当我删除这些特定断点时,问题就解决了。

根据rkawano的评论,关闭融合日志有时可以解决这个问题(对我来说的确如此)。在阅读了下面的内容后,我启用了fusion日志,但后来忘记了它。一段时间后,我开始体验visual studio 2013的显著放缓。症状是VS 2013变得无响应,特别是在结束调试会话时。加载项目或停止调试器时,它还将显示符号加载对话框(通常不显示这些对话框)。

转到工具>选项>环境>加载项安全性 取消选中“允许加载外接程序组件”
重新启动VisualStudio

我也有同样的加载速度慢的问题,但它只困扰一个沙盒解决方案。非常类似的暂存和生产/拷贝解决方案工作正常。所以人们推荐的所有这些环境调整都无法解释(当然,我还是试过了)。然后我比较了.csproj文件,发现了一个可疑的差异。纠正后,一切恢复正常。

我尝试了所有的解决方案,但似乎没有任何效果。我打开了我的符号设置工具>选项>调试>符号,找到了该目录中的
缓存符号
设置为另一个用户的目录,例如
C:\Users\\AppData\Local\Temp\SymbolCache

然后,我将设置字符串设为空以清除该字符串,并删除任何其他配置的pdb位置。然后按OK

然后我开始构建并允许VS解析这些符号(20秒)。然后我停止并重新启动,在不加载符号的情况下启动


我假设我从另一个用户那里导入了设置。

我的VS2013在调试时速度非常慢,因为加载符号速度慢。我注意到,在缓慢加载期间,我的网络使用率非常高,尽管我的应用程序无法访问它

作为一个实验,我拔下了以太网电缆,调试非常快。My symbols DownstreamStore位于C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE\DownstreamStore。在Tools\Debugging\Symbols下,我清除了缓存,当我试图退出时,收到一条消息,要求管理员权限才能继续

可能是权限(自2013年以来可能已更改)导致从Internet加载符号。我将目录更改为闪存驱动器上的另一个非管理位置,并进行了调试。第一次速度非常慢,但之后速度非常快

尝试以下任何一种。。。
  • 仅启用我的代码
    转到工具>选项>调试>常规
    选中“仅启用我的代码”


  • 本地缓存符号
    转到工具>选项>调试>符号 浏览到本地目录(确保它不在网络共享上) 单击“加载所有符号”或运行项目以缓存



  • 删除远程符号服务器

    选择远程符号服务器时,Visual Studio将为您提供:

    远程符号存储的性能可能因服务器的延迟、带宽或可用性而异。通过选择该选项,可以提高调试性能