2016-10-05 7 views
0

Мой сайт DNN работал нормально, пока я не добавлю к нему новый модуль. Как только я создал новый модуль в VS 2015 DNN и добавил его на сайт, эта ошибка началась.Не удалось загрузить файл или сборку «System.Web.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35» или одна из его зависимостей

2016-10-05 12:37:38,851 [WIN-8EQ5384ADST][Thread:13][ERROR] DotNetNuke.Services.Exceptions.Exceptions - ~/Default.aspx?tabid=1216&error=An unexpected error has occurred&content=0 
System.IO.FileLoadException: Could not load file or assembly 'System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 
File name: 'System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 
    at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType) 
    at System.Signature..ctor(IRuntimeMethodInfo methodHandle, RuntimeType declaringType) 
    at System.Reflection.RuntimeConstructorInfo.GetParametersNoCopy() 
    at System.Reflection.RuntimeConstructorInfo.GetParameters() 
    at System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat) 
    at System.Exception.GetStackTrace(Boolean needFileInfo) 
    at LCE.DNN.Modules.StoreLocator.View.Page_Load(Object sender, EventArgs e) 
    at System.Web.UI.Control.OnLoad(EventArgs e) 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 

WRN: Assembly binding logging is turned OFF. 
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. 
Note: There is some performance penalty associated with assembly bind failure logging. 
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. 

В модуле web.config я вижу ниже:

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.Razor" publicKeyToken="31BF3856AD364E35" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
      </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="WebMatrix.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

И я не вижу ничего, связанного System.Web.Razor в главном файле web.config (веб-сайт в конфигурационном файле).

Я новичок в MVC, а также DNN, может ли кто-нибудь помочь мне в этом, чтобы исправить эту проблему?

+0

Ну, у вас есть повторяющиеся привязки, поэтому я бы рекомендовал фиксирование, что первым. В папке «Представления» также есть файл web.config (если DNN следует за обычным шаблоном для проекта MVC). Кроме того, убедитесь, что независимо от 'LCE.DNN.Modules.StoreLocator', что он не ссылается на более раннюю версию' System.Web.Razor'. –

+0

@TiesonT. Можете ли вы рассказать об этом больше.Я не понимаю, где именно вы хотите, чтобы я посмотрел. – Jaggi

+0

Я честно не знаю структуру проекта для DNN - шаблон проекта MVC должен иметь папку Views в корне сайта, если DNN следует за этим вообще. Если нет, вам, вероятно, не придется беспокоиться об этом. Что касается модуля 'LCE.DNN.Modules.StoreLocator', если он не является встроенной частью DNN, вам нужно выяснить, какую версию« System.Web.Mvc »он ссылается. Если это [это] (http://www.dnnsoftware.com/community-blog/cid/135155/dotnetnuke-store-locator) модуль, он довольно старый, поэтому я бы предположил, что это преступник. –

ответ

0

Похоже, что у вас было несколько попыток удалить, обновить или установить различные компоненты ASP.NET и произошли некоторые сбои. Дубликаты в вашем списке отличаются только от корпуса PublicKeyToken, что может предполагать, что вы использовали разные версии пакетов или NuGets между попытками.

Я хотел бы сделать следующее, чтобы попытаться разрешить ситуацию:

  • Назад все.
  • Удалите все пакеты с помощью NuGet. Следите за ошибками.
  • вручную проверить .csproj файлы и удалить любые ссылки NuGet не могут быть удалены
  • Repeat для packages.config файлов.
  • В Вашем web.config удалить все dependentAssembly записей.
  • Верните правильные версии правильных пакетов в правильные проекты.
  • Очистить временные файлы ASP.NET
  • Сделайте чистую сборку.

Я видел эту ситуацию произойдет раньше, и для меня, это произошло, когда наш внутренний сервер NuGet были проблемы какие-то, хотя это может произойти за nuget.org, а также.

Другая возможность заключается в том, что вы ссылаетесь на references a version of Razor different from what you reference directly (я предполагаю, что DNN с вашего поста). Вам придется поохотиться на это и обновить его, если это возможно, или как-то стандартизировать в одной версии.

Независимо от этого, я бы выполнил вышеуказанные шаги.

0

Попробуйте выполнить следующую команду на консоли nuget.

Install-Package Microsoft.AspNet.Razor -Version 2.0.30506 

Если он говорит, его установленные затем запустить:

Update-Package Microsoft.AspNet.Razor 
Смежные вопросы

 Смежные вопросы