.NET MVC - система не может найти указанный путь
Вчера я развернул свой сайт с c:\development\project\ на c:\inetpub\wwwroot\virtualdir\ (тот же компьютер). Некоторое время это работало, я мог попасть на сайт, перейдя по http://computername/virtualdir/.
Но сегодня утром все получили ошибку: система не может найти указанный путь.
Какой указывается путь, который не может быть найден? / virtualdir / bin / содержит сборку System.Web.Mvc.Dll... Кроме того, проект развертывания пометил его как зависимость, поэтому я действительно был включен во время установки, как он может внезапно измениться?
Трассировки стека:
[DirectoryNotFoundException: система не может найти указанный путь. (Исключение из HRESULT: 0x80070003)]
[FileNotFoundException: не удалось загрузить файл или сборку 'System.Web.Mvc, версия =1.0.0.0, культура = нейтральная, PublicKeyToken=31bf3856ad364e35' или одна из ее зависимостей. Система не может найти указанный путь.]
[FileNotFoundException: не удалось загрузить файл или сборку 'System.Web.Mvc, версия =1.0.0.0, культура = нейтральная, PublicKeyToken=31bf3856ad364e35' или одна из ее зависимостей. Системе не удается найти указанный путь.] System.Reflection.Assembly._nLoad(имя_сборки имя_файла, строковая кодовая база, доказательство AssemblySecurity, расположение сборки Hint, StackCrawlMark& stackMark, логическое значение throwOnFileNotFound, логическое значение forIntrospection) +0 System.Refname.Assembly (), Строка codeBase, Свидетельство AssemblySecurity, Место сборки Hint, StackCrawlMark& stackMark, Логическое значение throwOnFileNotFound, Логическое значение forIntrospection) +43 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawl.Online.SignEctionOctionEctionLack7OctionLectionCrintMB) (Строка assemblyString, Свидетельство assemblySecurity, StackCrawlMark& stackMark, логическое значение для внутреннего анализа) +142 System.Reflection.Assembly.Load(String assemblyString) +28 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean)
[ConfigurationErrorsException: не удалось загрузить файл или сборку 'System.Web.Mvc, версия =1.0.0.0, культура = нейтральная, PublicKeyToken=31bf3856ad364e35' или одна из ее зависимостей. Системе не удается найти указанный путь.] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +613 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +. AssemblyInfo ai) +105 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +178 System.Web.Compilation.BuildManager. () +21 System.Web.Mvc.ControllerTypeCache.GetAllControllerTypes(IBuildManager buildManager) +62 System.Web.Mvc.ControllerTypeCache.EnsureInitialized(IBuildManager buildManager) +73 System.Web. пространства имен) +83 System.Web.Mvc.DefaultControllerFactory.GetControllerType(String controllerName) +305 System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +65 System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +128 System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext http.MW.vvxt).System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181 System.Web.HttpApplication.ExecuteSynpeteStep
2 ответа
Он находит System.Web.Mvc просто отлично, как вы можете видеть на трассировке стека:
System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +128
Кажется, что происходит, что ControllerTypeCache, пытаясь перечислить все ассембли, на которые ссылаются, чтобы найти контроллеры, не может найти сборку, на которую ссылается другой.
Прочтите эту запись в блоге о том, как точно определить, чего не хватает.
Для всех, кто приходит к этому вопросу с помощью поиска, другая ошибка конфигурации, которая может привести к появлению этого сообщения об ошибке, заключается в том, что в вашей конфигурации виртуального каталога у вас нет карты подстановки, созданной для asnet_isapi.dll.
Чтобы создать отображение:
- Откройте свойства вашего виртуального каталога.
- На вкладке "Виртуальный каталог" нажмите кнопку "Конфигурация"
- Нажмите "Вставить" и перейдите к файлу "aspnet_isapi.dll" соответствующей версии.Net
- Снимите флажок "Проверить наличие файла"