Отладка/загрузка Visual Studio очень медленная



Я в тупике. Visual Studio - это обычно мучительно медленно отлаживать или просто загружать ("начать без отладки") мой ASP.NET сайты MVC. Не всегда: сначала проекты будут загружаться красиво и быстро, но как только они загружаются медленно, они всегда будут загружаться медленно после этого. Я мог бы ждать 1-2 минуты или больше.



Мои настройки:



Я использую Visual Studio 2012 Express, в настоящее время, но у меня была такая же проблема в Visual Studio 2010 Express также. Мое решение хранится на сетевом диске; в частности, это Мои Документы перенаправлены на сетевой диск, если это имеет значение. (Это не должно. Бывают случаи, когда мой сайт очень быстро загружается под эту установку.)



я загружаю в Internet Explorer 9 обычно, но та же проблема происходит в Firefox.



это может произойти в любом ASP.NET проект MVC, над которым я работаю, и, похоже, вращается вокруг наличия DisplayTemplates, которые все мои ASP.NET проекты MVC делают. И это все C# и Razor, если это имело значение.



симптомы:



система загрузит мои символы сотни раз. В принципе, следующее, Но есть по крайней мере 300 таких строк, каждая из которых имеет немного разные DLL-файлы для одного и того же CSHTMLs:



'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesrootb63f823675085dApp_Web_contact.cshtml.22013bb9.xighmhow.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesrootb63f823675085dApp_Web_contact.cshtml.22013bb9.cv5hktkf.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesrootb63f823675085dApp_Web_statuscode.cshtml.22013bb9.1o77hs8i.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesrootb63f823675085dApp_Web_statuscode.cshtml.22013bb9.jja-77mw.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesrootb63f823675085dApp_Web_location.cshtml.22013bb9.l_e9ev_s.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesrootb63f823675085dApp_Web_location.cshtml.22013bb9.b4n59gom.dll', Symbols loaded.


в приведенном выше, у меня есть три DisplayTemplates: "контакт", "местоположение" и "StatusCode". Похоже, что IIS загружает символы дважды для каждого вызова displaytemplate. Таким образом, если я показываю таблицу из 100 записей, которая вызывает все три из этих displaytemplates, загружается 600 отдельных символов.



это тоже не быстрая операция. При просмотре файлов журнала, создаваемых IIS, для загрузки каждого символа требуется около 200 мс. Таким образом, сверхдлинные задержки.



что я пробовал:




  • Debug или release версию, это не имеет значения.

  • установка моего проекта на полную реализацию IIS в интернете сервер работает очень быстро и без проблем.

  • Cassini, IIS Express 7.5 и IIS Express 8.0 все имеют проблему.

  • удалить все точки останова ничего не делает.


  • Очистить Решение или удаления .СУО тоже ничего не делает.

  • если я восстанавливаю IIS Express или удаляю My DocsIISExpress папка, или ремонт / переустановка Visual Studio → проблема может уйти, но только на некоторое время, прежде чем она придет правильно спина.


любые консультации по все это по достоинству.



чтобы ответить на другие вопросы, Да, моя машина определенно имеет лошадиную силу. Бесит то, что один и тот же проект, без каких-либо изменений, иногда может загружаться очень быстро, как правило, после восстановления IIS Express и удаления . В конце концов" что-то " происходит, и это до 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:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesrootb63f823675085dApp_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:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Filesrootb63f823675085dApp_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-это перекомпиляция моего displaytemplate каждый раз это называется, Что опять же, сотни раз. Моя теория заключается в том, что Visual Studio компилирует файл, сохраняет его в сетевой папке, сетевая папка затем каким-то образом помечает Новое время на нем, а Visual Studio затем думает, что файл изменился, и, таким образом, Visual Studio перекомпилирует его еще раз. Только теория хотя, я действительно понятия не имею.



во-первых, по-видимому, у меня есть автономные файлы (это настольный компьютер в офисе; мне все равно). Я собираюсь отключить, перезагрузить и повторить попытку завтра.



плюс, перемещение моего проекта, как есть, в локальный C: исправляет его. Он загружается очень быстро. Но это не идеально в рабочей среде. Я теряю предыдущие версии, мой код не копируется вообще, если я не скопирую его вручную, и он больше не делится ни с кем.



Я могу сделайте это, копируя его взад и вперед из C в общий сетевой ресурс, если дело доходит до этого. Гораздо более раздражает ждать две минуты для каждой загрузки страницы.

759   0  

Comments

    Ничего не найдено.