gpt4 book ai didi

asp.net-mvc - Visual Studio 调试/加载非常慢

转载 作者:行者123 更新时间:2023-12-03 03:54:57 33 4
gpt4 key购买 nike

我已经无计可施了。 Visual Studio 调试或只是简单加载(“开始而不调试”)我的 ASP.NET MVC 站点通常非常缓慢。并非总是如此:一开始,项目会加载得很好而且很快,但是一旦加载缓慢,之后它们总是加载缓慢。我可能要等 1-2 分钟或更长时间。
我的设置:
我正在使用 Visual Studio 2012 Express ,目前,但我在 Visual Studio 2010 Express 中也遇到了同样的问题。我的解决方案存储在网络驱动器上;具体来说,它是重定向到网络驱动器的“我的文档”(如果重要的话)。 (它不应该。在这种设置下,有时我的网站加载速度非常快。)
我通常在 Internet Explorer 9 中加载,但在 Firefox 中也会出现同样的问题。
这可能发生在我从事的任何 ASP.NET MVC 项目中,而且它似乎与我所有的 ASP.NET MVC 项目都有 DisplayTemplates 相关。如果这很重要,那就全是 C# 和 Razor。
症状:
系统将加载我的符号数百次。基本上,如下,但至少有 300 行这样的行,对于相同的 CSHTML,每行都有略微不同的 DLL 文件:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.xighmhow.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.cv5hktkf.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.1o77hs8i.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.jja-77mw.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.l_e9ev_s.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.b4n59gom.dll', Symbols loaded.
在上面,我有三个 DisplayTemplates:“Contact”、“Location”和“StatusCode”。每次调用显示模板时,IIS 似乎都会加载两次符号。因此,如果我显示一个包含 100 个条目的表格,这些条目调用了所有三个显示模板,则加载了 600 个单独的符号。
这也不是一个快速的操作。 IIS 生成的日志文件需要大约 200 毫秒才能加载每个符号。因此,超长延迟。
我试过的:
  • 调试版还是发布版,无所谓。
  • 将我的项目放在 Web 服务器上的完整 IIS 实现上运行速度超快,没有任何问题。
  • Cassini、IIS Express 7.5 和 IIS Express 8.0 都有问题。
  • 删除所有断点什么都不做。
  • Clean Solution 或删除 .suo 也不做任何事情。
  • 如果我修复 IIS Express,或删除 My Docs\IISExpress文件夹,或修复/重新安装 Visual Studio → 问题可能会消失,但只有一段时间才会再次出现。

  • 任何建议都表示赞赏。
    要回答更多问题,是的,我的机器肯定有马力。令人气愤的是,同一个项目,没有任何改变,有时可以非常快地加载,通常在我修复 IIS Express 并删除 My Docs\IISExpress 之后。文件夹。最终,“某事”发生了,再次加载需要 2 分钟。我正在做的不是一个复杂的项目。没有外部库或依赖项,我的 VS.NET 没有任何附加组件。
    值得注意的是,这台机器有 Symantec Endpoint Protection,它有造成严重破坏的历史。但是完全禁用它(作为管理员很好)并没有解决问题。
    在这一点上我有一个理论。我认为这就是全部,因为我正在处理网络共享中的重定向文件夹。当调试器处理数百个“加载符号”行时,我停下来看看它在做什么。它在我的代码中,加载了我拥有的 DisplayTemplate。进入模板输出:
    Step into: Stepping over non-user code 'System.Threading.WaitHandle.InternalWaitOne'
    Step into: Stepping over non-user code 'System.Threading.WaitHandle.WaitOne'
    Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated'
    Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCapture'
    Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch'
    Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch'
    Step into: Stepping over non-user code 'System.Web.Compilation.AssemblyBuilder.Compile'
    'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.bciuyg14.dll', Symbols loaded.
    Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.CompileWebFile'
    Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultInternal'
    Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert'
    Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory'
    Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists'
    Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName'
    Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView'
    Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.Find'
    Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.FindPartialView'
    Step into: Stepping over non-user code 'System.Web.Mvc.Html.TemplateHelpers.ActionCacheViewItem.Execute'
    'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.kwj3uqan.dll', Symbols loaded.
    Step into: Stepping over non-user code 'System.RuntimeType.CreateInstanceSlow'
    Step into: Stepping over non-user code 'System.Web.Mvc.DependencyResolver.DefaultDependencyResolver.GetService'
    Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerViewEngine.DefaultViewPageActivator.Create'
    Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerCompiledView.Render'
    看起来 Visual Studio 正在重新编译我的显示模板 每次它被称为,这又是数百次。我的理论是 Visual Studio 编译文件,将其保存到网络共享,然后以某种方式在其上标记新时间,然后 Visual Studio 认为文件已更改。因此,Visual Studio 再次重新编译它。虽然只是一个理论;我真的没有头绪。
    首先,显然,我有离线文件(这是办公室里的台式电脑;我不在乎)。我要禁用,重新启动,然后明天重试。
    另外,将我的项目按原样移动到本地 C: 修复了它。它加载非常快。但这在工作环境中并不理想。我丢失了以前的版本,我的代码根本没有备份,除非我手动复制它,并且不再与任何人共享。
    如果涉及到它,我可以将它从 C 来回复制到网络共享。每次加载页面都要等待两分钟更烦人。

    最佳答案

    以下是我在 Visual Studio 2012 中解决“符号加载缓慢”问题的方法:

  • 转到工具 -> 选项 -> 调试 -> 常规
  • 选中“仅启用我的代码”旁边的复选标记。
  • 转到工具 -> 选项 -> 调试 -> 符号
  • 单击“...”按钮并在本地计算机上的某处创建/选择一个新文件夹来存储缓存符号。我将我的命名为“符号缓存”并将其放在“文档”->“Visual Studio 2012”中。
  • 单击“加载所有符号”并等待符号从 Microsoft 的服务器下载,这可能需要一段时间。 请注意,加载所有符号按钮仅在调试时可用。
  • 取消选中“Microsoft 符号服务器”旁边的复选标记以防止 Visual Studio 远程查询 Microsoft 服务器。
  • 单击“确定”。

  • 从现在开始,符号加载应该快得多。

    请注意,如果您对 Microsoft 程序集进行任何更改/下载,您可能需要返回“符号”对话框并再次“加载所有符号”。

    关于asp.net-mvc - Visual Studio 调试/加载非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12567984/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com