2016-10-05 1 views
0

새 모듈을 추가 할 때까지 내 DNN 웹 사이트가 제대로 작동했습니다. VS 2015 DNN에 새 모듈을 만들고 사이트에 추가하면이 오류가 발생하기 시작했습니다. 모듈의 web.config에서 '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]. 

나는 아래 참조 :

<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> 

그리고 주요 web.config 파일 (웹 사이트 설정 파일)에 System.Web.Razor 관련 아무것도 표시되지 않습니다.

MVC와 DNN을 처음 사용했습니다.이 문제를 해결하기 위해 어떤 안내를받을 수 있습니까?

+0

글쎄, 당신이 중복 바인딩을, 그래서 내가 먼저 고정을 권 해드립니다. 뷰 폴더에 web.config도 있습니다 (DNN이 MVC 프로젝트의 일반 템플릿을 따르는 것으로 가정). 또한,'LCE.DNN.Modules.StoreLocator'가 무엇이든 그것이 이전 버전의 System.Web.Razor를 참조하지 않고 있는지 확인하십시오. –

+0

@TiesonT. 좀 더 간단한 설명을 해줄 수 있습니까?나는 네가 내가 바라는 곳을 정확히 이해하지 못한다. – Jaggi

+0

DNN의 프로젝트 구조에 대해 솔직하게 알지 못합니다. MVN 프로젝트 템플릿에는 DNN이 따라 다니는 경우 사이트 루트에 Views 폴더가 있어야합니다. 그렇지 않다면 걱정할 필요가 없을 것입니다. '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 파일을 확인하고 packages.config 파일을
  • 반복을 제거하지 않았을 수 NuGet 참조를 제거합니다.
  • web.config에있는 모든 dependentAssembly 항목을 제거하십시오.
  • 올바른 패키지의 올바른 패키지 을 올바른 프로젝트에 다시 설치하십시오.
  • ASP.NET 임시 파일 지우기
  • 깨끗한 빌드를 수행하십시오.

내가 전에도 이러한 문제가 발생 보았다, 그리고 우리의 내부 NuGet 서버가 어떤 종류의 문제를했을 때 그것뿐만 아니라 nuget.org 위해 일어날 수 있지만 나를 위해, 그것은, 발생했습니다.

또 다른 가능성은 references a version of Razor different from what you reference directly (귀하의 게시물에서 DNN을 추측하고 있음)을 참조하는 것입니다. 가능한 한 사냥하고 업그레이드하거나 단일 버전으로 표준화해야합니다.

상관없이, 나는 여전히 위의 단계를 수행 할 것입니다.

0

너겟 콘솔에서 다음 명령을 실행 해보십시오. 그것의 실행 후 설치 한 말한다면

Install-Package Microsoft.AspNet.Razor -Version 2.0.30506 

:

Update-Package Microsoft.AspNet.Razor 
관련 문제

 관련 문제