Подтвердить что ты не робот

Не удалось загрузить файл или сборку "System.Web.Razor" или одну из ее зависимостей

Я использовал Umbraco 4.11.6 на своем веб-сайте (веб-приложение). Мой сайт работает в localhost (тестируется на Visual studio 2012 и IIS (v7)), но когда я запускаю его из интернет-пространства, я получил ошибку. Ошибка:

Не удалось загрузить файл или сборку "System.Web.Razor" или одну из его зависимостей. Расположенное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

След загрузки сборки. Следующая информация может быть полезна для определения того, почему сборка "System.Web.Razor" не может быть загружена.

WRN: Регистрация привязки к сборке отключена. Чтобы включить ведение журнала сбоев сборки, установите значение реестра [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) на 1. Примечание. Существует некоторое ограничение производительности, связанное с протоколом сбоя привязки сборки. Чтобы отключить эту функцию, удалите значение реестра [HKLM\Software\Microsoft\Fusion! EnableLog].

Трассировка стека:

[FileLoadException: не удалось загрузить файл или сборку "System.Web.Razor" или одну из его зависимостей. Расположенная сборка   определение манифеста не соответствует ссылке на сборку. (Исключение   от HRESULT: 0x80131040)]

[FileLoadException: не удалось загрузить файл или сборку. System.Web.Razor, Версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'или одной из его зависимостей. Установленное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)] System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, сборка доказательствSecurity, RuntimeAssembly reqAssembly, StackCrawlMark & ​​амп; stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +210
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark & stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +242
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark & stackMark, Boolean forIntrospection) +17 System.Reflection.Assembly.Load(String assemblyString) +35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +122

[ConfigurationErrorsException: не удалось загрузить файл или сборку 'System.Web.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей. установленное определение манифеста сборки не соответствует сборке Справка. (Исключение из HRESULT: 0x80131040)]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +12761078
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +503 System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +142 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +334
System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath) +203
System.Web.Compilation.BuildManager.ExecutePreAppStart() +152
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1151

[HttpException (0x80004005): не удалось загрузить файл или сборку 'System.Web.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей. установленное определение манифеста сборки не соответствует сборке Справка. (Исключение из HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit(контекст HttpContext) +12881540 System.Web.HttpRuntime.EnsureFirstRequestInit(контекст HttpContext) +159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, контекст HttpContext) +12722601

Информация о версии: Microsoft.NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.0.30319.17929

часть WebConfig:

<runtime>
<!-- Old asp.net ajax assembly bindings -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

4b9b3361

Ответ 1

Довольно много способов исправить это:

  • Установите MVC на веб-сервере (что не всегда возможно).

  • В визуальной студии вы можете установить DLL для копирования в локальную сборку, см. следующую статью (обратите внимание, что DLL MVC немного изменила имена, но дает вам этот процесс) http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx

  • Скопируйте соответствующие DLL из вашего GAC в папку bin на сайте umbraco. Для этого откройте "% windir%\Microsoft.NET\assembly\GAC_MSIL" в проводнике, и вы найдете все DLL, установленные в GAC, и вы можете скопировать соответствующие версии в ваш проект. Это похоже на вышеупомянутый метод, но обходит проект.

В отношении файлов вам, скорее всего, потребуется больше, чем просто System.Web.Razor.dll, однако это будет работать для всех отсутствующих файлов.

Ответ 2

Не все эти решения помогли мне: либо потому, что я ничего не могу установить на сервере, потому что я предпочитаю не включать DLL напрямую, не используя Nuget.

Решение, которое я использовал, - это установить/переустановить пакет nuget с именем Microsoft.AspNet.Razor(Microsoft ASP.Net Razor 2.0.20710)

Ответ 3

  • Удалить Nuget очистить папки "Temp".
  • Удалите пакет Nuget из источника проекта, а затем повторно установите пакет Nuget с помощью диспетчера пакетов.
  • Удалить папку bin.
  • Очистить проект и выполнить проект.
  • Запустить проект.

Готово

Ответ 4

Переустановите пакет Microsoft.AspNet.Razor, например, ADreNaLiNe-DJ . Лучший способ сделать это - использовать команду Update-Package, потому что команда Install-Package не предоставляет возможность принудительно переустановить, см. docs.

PM> Update-Package Microsoft.AspNet.Razor -reinstall

Ответ 5

Я не хотел устанавливать визуальную студию и среду разработки, поэтому я установил AspNetMVC4Setup.exe на компьютере с сервером Windows 2016 и решил проблему. Установщик был загружен с веб-сайта Microsoft.

Свойства файла AspNetMVC4Setup.exe

Ответ 6

Если вы находитесь под контролем источника, проверьте свои изменения, а затем удалите всю папку из обозревателя Windows, затем получите определенную версию с уровня решения и получите самую последнюю перезапись.