2014-07-23 4 views
3

더 이상 하늘색 Webrole을 배포 할 수 없으며 무기한 순환합니다. 그래서 Intellitrace 입고 나는이 예외 발견 :Azure webrole cycling 및 "파일 또는 어셈블리를로드 할 수 없습니다. System.Web.Http 5.2.0.0"

예외 : 슬로우 "는 다음과 같은 예외로 인해 역할 진입 점로드 할 수 없습니다 : - System.IO.FileLoadException을 : 파일을로드 할 수 없습니다 또는 어셈블리 'System.Web.Http, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'또는 해당 종속성 중 하나를 찾습니다. 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다 (HRESULT : 0x80131040의 예외)

내 프로젝트에서 web.config 및 package (Webapi, 웹 호스트 등)은 5.2.0.0에 모두 포함되어 있으므로 Azure가 5.0.0.0을 찾으려고하는 이유를 모르겠습니다.

예 :

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

당신이 어떤 생각을 가지고 있습니까? 감사합니다

PS : WaIISHost.exe가 충돌되는 것을 intellitrace 출력이 알려주는 사실

답변

6

그건 ("없습니다 역할 진입 점을로드") : System.Web.Http 지역 복사 얻었다. 그러나 web.config 어셈블리 바인딩 리디렉션은 w3wp.exe 프로세스에만 영향을줍니다. 다음과 같은 몇 가지 옵션이 있습니다.

  1. RoleEntryPoint에서 파생 된 클래스 (일반적으로 WebRole.cs)를 확인하여 System.Web 5.2 DLL을 참조하는지 확인하십시오.
  2. WaIISHost 프로세스의 바인딩 리디렉션을 사용하여 .config 파일을 만듭니다. 이렇게하려면 .dll.config 파일을 만듭니다. 기본 웹 역할 프로젝트에서는 WebRole1.dll.config가됩니다.