파일 또는 어셈블리 시스템을 로드할 수 없습니다.Web.Http.Web Host는 Azure 웹 사이트에 게시된 후
웹 프로젝트를 만들었는데 Visual studio에서 잘 작동합니다.그러나 azurewebsite에 게시한 후 다음과 같은 오류가 발생했습니다.문제의 원인은 무엇입니까?
파일 또는 어셈블리 '시스템'을 로드할 수 없습니다.Web.Http.WebHost, 버전=5.0.0, Culture=중립, PublicKey토큰=31bf3856ad364e35' 또는 그 종속성 중 하나.찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다(HRESULT: 0x80131040의 예외).
설명:현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다.에러와 코드의 어디에서 발생한 에러의 상세한 것에 대하여는, 스택 트레이스를 확인해 주세요.
예외 상세:시스템.IO.FileLoadException:파일 또는 어셈블리 '시스템'을 로드할 수 없습니다.Web.Http.WebHost, 버전=5.0.0, Culture=중립, PublicKey토큰=31bf3856ad364e35' 또는 그 종속성 중 하나.찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다(HRESULT: 0x80131040의 예외).
소스 오류:
현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다.예외 발생원 및 위치에 대한 정보는 다음 예외 스택 추적을 사용하여 식별할 수 있습니다.
어셈블리 로드 트레이스:다음 정보는 어셈블리가 '시스템'인 이유를 확인하는 데 도움이 될 수 있습니다.Web.Http.WebHost, 버전=5.0.0, Culture=중립, PublicKey토큰=31bf3856ad364e35'을(를) 로드할 수 없습니다.
WRN: 어셈블리 바인딩 로깅이 꺼져 있습니다.어셈블리 바인드 장애 로깅을 활성화하려면 레지스트리 값 [HKLM\Software\Microsoft\]를 설정합니다.Fusion!EnableLog](DWORD)를 1로 설정합니다.주의: 어셈블리바인드 장애 로깅과 관련된 성능 저하가 있습니다.이 기능을 끄려면 레지스트리 값 [HKLM\Software\Microsoft\]를 삭제합니다.Fusion!Enable Log]를 선택합니다.
다음은 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
게시된(실행된 환경)에 없습니다.그것이 그것이 지역 내에서 작동하는 이유이다.Visual Studio, 단 Azure Web 사이트 환경에는 없습니다.
해.Copy Local = true
어셈블리의 속성(시스템)에 표시됩니다.Web.Http.WebHost)를 사용해 재배치를 실시하면 정상적으로 동작합니다.
다른 어셈블리가 누락된 것과 같은 유사한 오류가 발생하는 경우 해당 어셈블리를 copylocal=true로 설정하고 다시 배포합니다. 종속성이 확실하지 않은 경우 이 작업을 반복하십시오.
아직 답을 찾고 있다면 이 질문 스레드를 확인해 보십시오.그것은 비슷한 문제를 해결하는 데 도움이 되었다.
edit 된은 집편 : 된된된 edit edit edit edit edit를 실행하는 이었습니다.Update-Package Microsoft.AspNet.WebApi -reinstall
Pathoschild가 제안한 대로 NugGet 패키지 관리자에서 가져옵니다.그런 다음 이 스레드에서 Sergey Osypchuk이 제안한 대로 .suo 파일을 삭제하고 VS를 재시작해야 했습니다.
같은 문제를 만나서 설정을 통해 해결했습니다.CopyLocal
libs(립스)가 맞다.
System.Web.Http.dll
System.Web.Http.WebHost.dll
System.Net.Http.Formatting.dll
MVC4와 NET4를 사용하고 있다는 것을 추가해야 합니다.
에는 '다보다'에 다음 작업을 .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이 없습니다.그것이 그것이 지역 내에서 작동하는 이유이다.Visual Studio, 단 Azure Web 사이트 환경에는 없습니다.
어셈블리(시스템)의 속성에서 로컬 복사 = true를 실행하십시오.Web.Http.WebHost)를 사용해 재배치를 실시하면 정상적으로 동작합니다.
를 사용하고 설정이 된 것 .vs2012는 KB2781514입니다.웹MVC4 웹Http 로 false 。는 나나 the the the the the the the the the를 바꿨다.All file in this project
등록 정보를 공개합니다. 갈아타야 .Copy Local = true
하나씩 해결했습니다.
같은 에러가 발생하여 버전을 4에서3으로 변경했더니 해결되었습니다.
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!-- Ensure correct version of MVC -->
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
어플리케이션에서도 같은 문제가 발생하였습니다.
System.web.http.webhost not found.
요.system.web.http.webhost
Visual Studio에 .bin
디렉토리로 이동합니다.
후, 되는 경우가 만, 되면, 「 」, 「 」, 「 」, 「 」, 「 」가 됩니다.system.web.http
. 위와 같은 절차를 따릅니다.이치노이는 Visual Studio의 nuget 패키지가 인터넷에서 다운로드되지만 서버에서는 다운로드할 수 없기 때문입니다.
내에서 수 있습니다.bin
디렉토리로 이동합니다.
VS2013(업데이트 5)/ASP에서 이 문제가 발생했습니다.NET 4.5, MVC 및 Web API를 포함하는 프로젝트 유형 "Web Application" 아래에 있습니다. 프로젝트를 생성한 직후에 코드를 추가하기 전에 오류가 발생했습니다.다음 구성을 추가하면 수정됩니다."System"을 클릭합니다.Web.Helpers는 "System"에 대해 두 가지 유사한 오류가 더 드러났습니다.Web.Mvc" 및 "시스템"을 참조하십시오.Web.WebPages"를 참조해 주세요.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.3.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>
몇 개의 DLL이 누락되어 있었습니다.다음에 게시할 때 수동으로 디렉토리에 복사해도 사라집니다.VS에서는 각 파일이 로컬로 복사되도록 이미 설정되어 있습니다.수정은 로컬로 복사 false로 설정하고 저장 및 빌드한 후 로컬로 복사 true로 설정하는 것이었습니다.이번에 올바르게 게시된 모든 DLL을 게시했습니다.이상하다
솔루션에 여러 프로젝트가 있고 이 오류로 인해 프로젝트 중 하나를 빌드하지 못한 경우 해당 프로젝트에 WebApi Core nuget 패키지를 설치했는지 확인하십시오.단순히 시스템에 대한 참조를 추가합니다.Web.Http는 도움이 되지 않습니다.그 프로젝트에 올바른 nuget 패키지를 인스톨 할 필요가 있습니다.
솔루션에는 여러 프로젝트가 있었고 WebApi Core는 이미 다른 프로젝트에 설치되어 있었습니다.시스템을 참조했습니다.Web.Http 어셈블리는 목록에서 마우스 오른쪽 버튼을 클릭하여 선택함으로써 Azure에서는 동작하지 않았지만 로컬에서는 정상적으로 빌드됩니다.매뉴얼 참조를 삭제하고 조립 참조가 필요한 각 프로젝트에 WebApi Core nuget 패키지를 추가해야 했습니다.
"로컬 복사"가 이미 True인 경우 게시된 파일을 삭제하고 다시 게시하면 작동될 수 있습니다.
예를 들어 IIS를 사용하는 경우 웹 사이트와 웹 사이트가 게시된 디렉토리의 내용을 제거한 후 다시 게시합니다.
대상에 이전 버전의 파일이 있을 수 있으므로 이전 버전을 사용하지 않도록 하려면 다시 게시하기 전에 모두 삭제하십시오.
다음 엔트리를 web.config에서 삭제하면 동작합니다.
<dependentAssembly>
<assemblyIdentity name="System.Web.Http.WebHost" culture="neutral" publicKeyToken="31BF3856AD364E35" />
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="5.2.6.0" />
</dependentAssembly>
패키지 버전이 솔루션 전체에서 동일한지 확인하십시오. 다운그레이드 및 했습니다.Microsoft.AspNet.Mvc
이치노
제 경우, 이 문제는 nuget을 조작하여 버전을 조정한 후에 발생한 것으로 생각됩니다.
나는 그 시스템을 발견했다.Web.http.webhost 버전이 전개된 폴더와 개발 폴더의 버전이 다릅니다.내가 한 일은 파일을 삭제하고 재배치한 것뿐이야. 그리고 작동했지.
여기 다른 사람들이 말한 것처럼 "로컬 복사"에 대한 참조도 설정했지만 효과가 없었습니다.그것이 도움이 되었는지 나는 결국 말할 수 없다.
언급URL : https://stackoverflow.com/questions/20323107/could-not-load-file-or-assembly-system-web-http-webhost-after-published-to-azure
'source' 카테고리의 다른 글
Spring Tool Suite IDE에서 프로젝트를 다시 도입하려고 할 때 8080 포트가 이미 문제가 발생함 (0) | 2023.03.25 |
---|---|
가장 쉬운 각도 통과 방법지시어에서 컨트롤러로의 JS 범위 변수 (0) | 2023.03.25 |
rest_api_init 이벤트가 실행되지 않았습니다. (0) | 2023.03.20 |
jQuery가 있는 레일에서 눈에 띄지 않는 동적 양식 필드 (0) | 2023.03.20 |
react js에서 이미지 src를 동적으로 제공하는 방법 (0) | 2023.03.20 |