웹 프로젝트를 만들었고 Visual Studio에서 잘 실행됩니다. 그러나 azurewebsites에 게시 한 후 다음 오류가 발생했습니다. 무엇이 문제를 일으킬 수 있습니까?
파일 또는 어셈블리 ‘System.Web.Http.WebHost, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’또는 해당 종속성 중 하나를로드 할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040)
설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 발생한 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.
예외 정보 : System.IO.FileLoadException : 파일 또는 어셈블리 ‘System.Web.Http.WebHost, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’또는 해당 종속성 중 하나를로드 할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040)
소스 오류 :
현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다. 예외의 출처와 위치에 관한 정보는 아래 예외 스택 추적을 사용하여 식별 할 수 있습니다.
어셈블리로드 추적 : 다음 정보는 ‘System.Web.Http.WebHost, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35’어셈블리를로드 할 수없는 이유를 확인하는 데 도움이 될 수 있습니다.
WRN : 어셈블리 바인딩 로깅이 꺼져 있습니다. 어셈블리 바인드 실패 로깅을 사용 가능하게하려면 레지스트리 값 [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD)를 1로 설정하십시오. 참고 : 어셈블리 바인드 실패 로깅과 관련하여 일부 성능 저하가 있습니다. 이 기능을 끄려면 레지스트리 값 [HKLM \ Software \ Microsoft \ Fusion! EnableLog]를 제거하십시오.
다음은 web.config 파일의 일부입니다.
<system.web>
<customErrors mode="Off"/>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers></system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
답변
dll
게시 (배치 환경)에 없습니다. 이것이 로컬 웹 사이트에서는 작동하지만 Azure 웹 사이트 환경에서는 작동하지 않는 이유입니다.
그냥 할 Copy Local = true
어셈블리 (의 속성에 System.Web.Http.WebHost ) 다음 재배포을, 그것을 잘 작동합니다.
비슷한 오류가 발생하는 경우 (예 : 다른 어셈블리가 누락 된 경우) 해당 어셈블리를 copylocal = true로 설정하고 재배치하는 경우 종속성이 확실하지 않은 경우이 과정을 반복적으로 반복하십시오.
답변
여전히 답을 찾고 있다면이 질문 스레드를 확인하십시오 . 비슷한 문제를 해결하는 데 도움이되었습니다.
편집 : Update-Package Microsoft.AspNet.WebApi -reinstall
Pathoschild가 제안한 것처럼 NugGet 패키지 관리자에서 실행하는 데 도움이되는 솔루션 이었습니다. 그런 다음 Sergey Osypchuk 이 제안한대로 내 .suo 파일을 삭제하고 VS를 다시 시작해야했습니다 .
답변
나는 같은 문제를 만났고 CopyLocal
다음 라이브러리에 대해 true 로 설정 하여 해결했습니다 .
System.Web.Http.dll
System.Web.Http.WebHost.dll
System.Net.Http.Formatting.dll
MVC4 및 NET 4를 사용하도록 추가해야합니다.
답변
나를 위해 다음 섹션을 web.config
파일에 추가했습니다 .
<configuration>
...
<runtime>
...
<dependentAssembly>
<assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
...
</runtime>
...
</configuration>
이 예는 MVC 5.1을 나타냅니다. 누군가가 그러한 문제를 해결하는 데 도움이되기를 바랍니다.
답변
나를 위해 게시 대화 상자의 설정에서 파일 게시 옵션에서 “대상에서 추가 파일 제거”를 선택한 후 작업을 시작했습니다.
답변
게시 된 (배포 된 환경)에 dll이 없습니다. 이것이 로컬 웹 사이트에서는 작동하지만 Azure 웹 사이트 환경에서는 작동하지 않는 이유입니다.
어셈블리 (System.Web.Http.WebHost)의 속성에서 Local = true 복사를 한 다음 재배치하면 제대로 작동합니다.
답변
vs2012를 사용하고 있으며 업데이트 KB2781514가 일부 설정을 변경했다고 생각합니다. 내 MVC4 프로젝트의 모든 System.Web.Http가 false로 변경되어 계속이 메시지를 받았습니다. All file in this project
게시 속성을 변경 했지만 작동하지 않습니다. 마지막으로 Copy Local = true
하나씩 변경 하고이 문제를 해결해야합니다.
