2014-11-28 7 views
1

최근 Azure에서 호스팅하는 Windows Server 2012 VM에 Umbraco 7.1.9 응용 프로그램을 배포했습니다. ' Windows Server 2012 (Azure)의 Umbraco 7.1.9

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Reflection.ReflectionTypeLoadException: Could not load types from assembly umbraco, Version=1.0.5443.21812, Culture=neutral, PublicKeyToken=null, errors: 
Exception: System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Umbraco.Web.Editors.ContentPostValidateAttribute'. Assembly: 'umbraco, Version=1.0.5443.21812, Culture=neutral, PublicKeyToken=null'. 
Exception: System.TypeLoadException: Could not load type 'System.Web.Http.Controllers.IControllerConfiguration' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 
Exception: System.TypeLoadException: Could not load type 'System.Web.Http.Controllers.IControllerConfiguration' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 
Exception: System.TypeLoadException: Could not load type 'System.Web.Http.Controllers.IControllerConfiguration' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 
Exception: System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Umbraco.Web.WebApi.Filters.EnsureUserPermissionForContentAttribute'. Assembly: 'umbraco, Version=1.0.5443.21812, Culture=neutral, PublicKeyToken=null'. 
Exception: System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Umbraco.Web.WebApi.Filters.EnsureUserPermissionForMediaAttribute'. Assembly: 'umbraco, Version=1.0.5443.21812, Culture=neutral, PublicKeyToken=null'. 
Exception: System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Umbraco.Web.WebApi.Filters.FileUploadCleanupFilterAttribute'. Assembly: 'umbraco, Version=1.0.5443.21812, Culture=neutral, PublicKeyToken=null'. 
Exception: System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Umbraco.Web.WebApi.Filters.FilterAllowedOutgoingMediaAttribute'. Assembly: 'umbraco, Version=1.0.5443.21812, Culture=neutral, PublicKeyToken=null'. 
Exception: System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Umbraco.Web.WebApi.Filters.FilterAllowedOutgoingMediaAttribute'. Assembly: 'umbraco, Version=1.0.5443.21812, Culture=neutral, PublicKeyToken=null'. 
Exception: System.TypeLoadException: Could not load type 'System.Web.Http.Controllers.IControllerConfiguration' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 
Exception: System.TypeLoadException: Could not load type 'System.Web.Http.Dispatcher.DefaultHttpControllerSelector' from assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 

우리는 .NET 프레임 워크의 최신 버전, 서버의 모든 업데이트를 설치하고 우리가 할 수있는 : 응용 프로그램은 우리의 개발자 시스템에 로컬로 # 1을 작동하지만 우리는 VM에 웹 사이트를 배포 할 때 우리는이 오류가 그것을 작동시키지 마십시오.

누구든지 비슷한 문제가 있습니까?

답변

1

확실하지가이 문제를 가진 다른 사람에게 도움이 될 것입니다.

목록에없는 패키지 인 AspNetWebApi.Core에 의존하는 LowercaseRoutesMVC4 패키지를 추가했습니다. System.Web.Http의 잘못된 버전을 나타냅니다. 이 패키지를 제거하고 NuGet 패키지 대신 내 경로 구성에서 LowercaseUrls 속성을 사용하면 모든 것이 예상대로 작동합니다.

1

편집 : 여기에 유용한 스레드 ...

http://our.umbraco.org/forum/getting-started/installing-umbraco/48351-Umbraco-703-is-totally-broken-after-fresh-nuget-install

이 도움이되지 않았다 ...

은 아직 그 문제를 보지 않았다 그러나 나는 웹 diffing의거야. config를 7.1.4에서 7.1.9로 오늘 업그레이드하면 도움이 될 수있는 두 가지 사항을 알게되었습니다.

  1. 는 최근에 추가 :

    System.Web.Http에 대한의 Web.config에서이 같이 아무것도
    <add assembly="System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    
  2. 없습니다 :

    <dependentAssembly> 
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/> 
    </dependentAssembly> 
    

날 경우 궁금합니다은 문제의 답이 다음을 추가했을 수 있습니다.

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
</dependentAssembly> 

또는이 (seen here) : 그것은 우리의 프로젝트에 매우 구체적인 같이

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" /> 
</dependentAssembly> 
+0

감사하지만 차이는 없습니다. 사실'System.Web.Http'는 정의되지 않았지만 문제를 해결하지 못했습니다. 또한 5.2.2.0으로 시도했지만 Umbraco는 4.0.0.0 버전을 사용하고 있으므로 5.2.2.0 버전을 지정하면 예외가 발생합니다 : '파일 또는 어셈블리를로드 할 수 없습니다'System.Web.Http, Version = 5.2.2.0, 문화 = 중립, PublicKeyToken = 31bf3856ad364e35 '또는 그것의 의존성 중 하나. 위치한 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. ' –

+0

또한, 7.2.0-RC로 업데이트하려고했지만 심지어 같은 문제가 발생했습니다. –

+0

Bummer. Windows Server 2012 R2 내부 업그레이드가 순조롭게 진행되었습니다. /bin/System.Web.Http.dll은 7.1.4 : 4.0.20710.0과 동일한 버전입니다. /bin/umbraco.dll은 이제 오류 메시지와 같은 1.0.5443.21812입니다. 아마도''? 나는 지금 빨대를 쥐고 ​​있음을 압니다. Azure 웹 사이트에 배포하는 데 문제가 있음을 알면 알려 드리겠습니다 (미안하지만). – twamley