programing

오류 Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKey토큰=31bf3856ad364e35

showcode 2023. 6. 14. 22:01
반응형

오류 Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKey토큰=31bf3856ad364e35

저는 작은 웹 애플리케이션을 가지고 있습니다.애플리케이션에 일반 핸들러 2개를 추가하기 전까지는 잘 작동했습니다.

http 핸들러에 대해 다음과 같이 변경했습니다.

 <system.web>
    <authentication mode="Forms" >
        <forms protection="All" timeout="720" defaultUrl="Default.aspx" loginUrl="Login.aspx" >
        </forms>
    </authentication>
    <authorization>
        <deny users="?"/>
    </authorization>
    <compilation debug="true" targetFramework="4.0" />

    <httpHandlers>
        <!--Code Log Handler-->
        <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
        <add verb="*" type="InfoDomeNewUI.Handler.SendOWA" path="SendOWA.ashx" />
        <add verb="*" type="InfoDomeNewUI.Handler.SendSOS" path="SendSOS.ashx" />
    </httpHandlers>
    <customErrors mode="Off">
        <error statusCode="404" redirect="Templates/PageNotFound.html" />
    </customErrors>
</system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
        <!--Code Log Handler-->
        <add name="LogHandler1" path="SendOWA.ashx" verb="*" type="InfoDomeNewUI.Handler.SendOWA"/>
        <!-- SMS SENDER-->
        <add name="SendSOS" path="SendSOS.ashx" verb="*" type="InfoDomeNewUI.Handler.SendSOS"/>
    </handlers>
</system.webServer>

Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

저는 asp.net4.0과 C#을 사용하고 있습니다.MVC를 사용하지 않습니다.
로컬 호스트에서 정상적으로 작동합니다.
그러나 게시된 코드를 호스팅할 때 위의 오류가 발생합니다.

스택 추적:-

[파일을 찾을 수 없음 예외:'Microsoft' 파일 또는 어셈블리를 로드할 수 없습니다.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 또는 그 종속성 중 하나입니다.지정한 파일을 찾을 수 없습니다.]시스템.웹.Http.웹 호스트.SuppressFormsAuthRedirectModule.등록() +0

[잘못된 작업]예외:사전 적용 시작 초기화 방법 Start on System(시스템에서 시작)입니다.웹.Http.웹 호스트.PreApplicationStartCode가 다음 오류 메시지와 함께 예외를 발생시켰습니다.'Microsoft' 파일 또는 어셈블리를 로드할 수 없습니다.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 또는 그 종속성 중 하나입니다.지정한 파일을 찾을 수 없습니다.] 시스템.웹, 편집.빌드 관리자.PreStartInitMethods(ICollection`1 메서드) +11708830 시스템을 호출합니다.웹, 편집.빌드 관리자.PreStartInitMethods() +465 시스템을 호출합니다.웹. 호스팅.호스팅 환경.초기화(Application Manager appManager, I 애플리케이션)Host appHost, IconfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters, policyLevel 정책레벨

[HttpException(0x80004005):사전 적용 시작 초기화 방법 Start on System(시스템에서 시작)입니다.웹.Http.웹 호스트.PreApplicationStartCode가 다음 오류 메시지와 함께 예외를 발생시켰습니다.'Microsoft' 파일 또는 어셈블리를 로드할 수 없습니다.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 또는 그 종속성 중 하나입니다.지정한 파일을 찾을 수 없습니다.] 시스템.Web.Http 런타임.FirstRequestInit(HttpContextContext) +11697760 시스템.Web.Http 런타임.FirstRequestInit(HttpContextContext) +141 시스템을 확인합니다.Web.Http 런타임.프로세스 요청 알림 비공개(IIS7WorkerRequestwr, HttpContext 컨텍스트) +4866485

Microsoft로 표시됩니다.윈도우즈 서버에 .net(4.0 또는 4.5 또는 기타)이 성공적으로 설치된 경우에도 Web.Infrastructure.dll이 GAC에 설치되지 않습니다.로컬 호스트(일반적으로 Windows 클라이언트)에서는 도구/플랫폼(Visual Studio 등)이 설치될 때 GAC에 있는 것처럼 보입니다.

가능한 해결책 중 하나로 다음을 시도해 보십시오.

  1. 패키지 관리자 콘솔에서 다음 명령을 실행합니다.(Visual Studio를 사용하는 경우 메뉴 옵션 "도구 --> 라이브러리 패키지 관리자 --> 패키지 관리자 콘솔:"을 통해 액세스할 수 있습니다.)

    PM> Install-Package Microsoft.Web.Infrastructure
    

    성공적으로 설치되면 다음 메시지가 표시됩니다.

    Successfully installed 'Microsoft.Web.Infrastructure 1.0.0.0'.
    Successfully added 'Microsoft.Web.Infrastructure 1.0.0.0' to Web.
    
  2. Microsoft를 확인할 수 있습니다.이제 Web.Infrastructure.dll이 참조로 추가되었습니다(솔루션 탐색기의 프로젝트 참조 폴더에서 확인할 수 있습니다).

  3. 이 참조의 속성을 보면 "로컬 복사"가 기본적으로 ""으로 설정되어 있음을 알 수 있습니다.

  4. 이제 프로젝트를 "게시"하면 마이크로소프트가 됩니다.Web.Infrastructure.dll이 배포됩니다.

WPI를 통해 MVC4를 설치했는데 도움이 되었습니다.

저도 같은 문제가 있었습니다.승인된 답변(rockyb)을 시도했을 때 패키지가 이미 설치되어 있고 제 프로젝트에 할당되어 있다는 메시지를 받았습니다.하지만 제가 참조 목록을 확인해보니 참조가 되지 않았습니다.

마이크로소프트사.솔루션의 패키지 폴더에 Web.Infrastructure가 설치되었습니다.패키지를 추가할 때 NuGet을 사용하는 대신 Add Reference 옵션을 사용했습니다.팝업 창 왼쪽에서 찾아보기를 선택한 다음 창 하단의 찾아보기 버튼을 누릅니다.솔루션이 있는 폴더 아래의 패키지 폴더로 이동한 다음...로 드릴다운했습니다.\mysolution\packages\Microsoft.Web.Infrastructure.1.0.0\lib\net40을 클릭하고 Microsoft를 클릭합니다.Web.Infrastructure.dll.확인을 클릭하면 패키지가 참조 목록에 나타납니다.Web Deploy Package 옵션을 사용하여 웹 사이트를 배포하고 모든 작업을 수행했습니다.

왜 Microsoft를 모방하지 않습니까?Web.Infrastructure.dll 파일을 서버 BIN 폴더에 수동으로 저장합니다.이거 효과가 있어요.제 프로젝트는 VS2010 웹사이트입니다.

이 파일은 다음과 같이 찾을 수:

C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.Web.Infrastructure.1.0.0\lib\net40

복사해서 BIN 폴더에 붙여넣기만 하면 됩니다.

web.config가 아직 없다면 아마도 이것을 포함시켜야 할 것입니다.

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </assemblies>
</compilation>

참조: http://thedeveloperblog.com/

문제를 발견했습니다. 클스를추는대신하가래▁instead신.(.cs)실수로 파일을 추가했습니다.Web API Controller내 솔루션에 구성 파일을 추가한 클래스입니다.그리고 그 구성 파일은 언급된 DLL(Microsoft)을 찾고 있었습니다.Web.Infrastructure 1.0.0.0).제가 그 파일을 제거하고 애플리케이션을 정리한 다음 게시했을 때 작동했습니다.

마이크로소프트를 설치한 후. »를 통한 .인프라스트럭처를 통한Nuget-Package Manager

PM> Install-Package Microsoft.Web.Infrastructure

를 합니다.Microsoft.Web.Infrastructure.dll에수로에서 Nuget-Package웹 응용 프로그램의 폴더를 만든 다음 웹 서버에 배포된 웹 응용 프로그램의 bin 폴더에 붙여넣습니다.

패키지\Microsoft.Web.Infrastructure.1.0.0\lib\net40\Microsoft.Web.Infrastructure.dll

그것은 나에게 효과가 있었다.

Update-Package -reinstall Microsoft.Web.Infrastructure이미 설치되어 있다는 오류가 계속 발생했기 때문에 작동하지 않았습니다.

저는 마이크로소프트로 이동해야 했습니다.패키지 폴더에 있는 Web.Infrastructure.1.0.0 폴더를 수동으로 삭제합니다.

한 에, 을한후에, 는것달리를 실행합니다.Install-Package Microsoft.Web.Infrastructure설치했습니다.

참고:CopyLocal자동으로 true로 설정되었습니다.

때때로 강제로 패키지를 삭제한 후 다시 설치해야 합니다. 패키지를 삭제해 보십시오.

Uninstall-Package Microsoft.Web.Infrastructure -force

그런 다음 다시 설치합니다.

Install-Package Microsoft.Web.Infrastructure

저도 같은 문제가 있었고 "마이크로소프트"였습니다.Web.Infrastructure.dll"이(가) 누락된 것 같습니다.몇 가지 조언을 해보고 MVC 등을 설치했지만 아무 도움이 되지 않았습니다.솔루션은 Microsoft가 포함된 "WSE(Web Services Enhancements) 1.0 SP1 for Microsoft .NET"을 설치하는 것이었습니다.Web.Infrastructure.dll.이용 가능한 곳: http://www.microsoft.com/en-gb/download/details.aspx?id=4065

저도 같은 문제가 있었습니다.Visual Studio 2010 SP1을 설치하려고 했지만 작동하지 않았습니다.

마침내 마이크로소프트를 얻었습니다.동료의 Web.Infrastructure.dll.프로젝트가 완벽하게 작동하는 친구 PC에서 dll을 찾을 수 있습니다.dll을 Temp/Temporary ASP.NET 파일로 검색합니다.실행 창에 %temp%를 사용하여 Temp로 이동합니다.

dll을 PC에 넣은 후 프로젝트에 참조를 추가하면 작동합니다.

사이트를 다시 게시하면서 문제가 해결되었습니다.

같은 문제에 직면하고 있었는데 불행히도 여기서는 아무 것도 작동하지 않았습니다.마침내, 저는 이 링크를 발견했습니다: https://blogs.msdn.microsoft.com/jjameson/2009/11/18/the-copy-local-bug-in-visual-studio/

이 솔루션은 다소 바보같습니다. microsoft.web.인프라 dll에 대한 copy-local을 False로 설정한 다음 True로 다시 설정합니다.

그런데, 제 생각에 지금 일어나고 있는 일은 두 가지 버전의 microsoft.web.인프라 dll이 있는데 하나는 GAC에 미리 설치되어 있는 것이고 다른 하나는 현재 nugget 패키지가 된 것입니다.저는 하나가 다른 하나를 가리고 있어서 문제를 일으키고 있다고 생각합니다.특히 빌드 서버에서 폴더로 복사해야 합니다(이 폴더는 압축되어 배포로 전송됨).시스템에 로컬 복사본이 있고 "아, 괜찮을 거야"라고 생각한 것 같습니다.

저는 파일 전용 웹사이트를 가지고 있습니다.웹 양식 애플리케이션(대상 net45)에 MVC 5 추가.packages.config를 수정해야 했습니다.

package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45"

로.

package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" developmentDependency="true"

디버그 모드(이전에는 위에 설명된 오류가 있음)에서 로컬 상자에서 시작하기 위해 사용됩니다.Windows 7에서 VS 2017을 실행 중... 파일 > 열기 > 웹 사이트 > 파일(IIS 외부 루트 디렉터리 선택)을 통해 열립니다.

나는 많은 NuGet 패키지를 업그레이드한 후에도 같은 문제를 겪었습니다.
저는 여기에 설명된 모든 종류의 삭제, 청소, 재설치를 시도했지만 소용이 없었습니다.참조에 Microsoft가 포함되어 있지 않습니다.Web.Infrastructure가 설치되어 있음을 NuGet 관리자가 표시했음에도 불구하고.

문제는 다음을 교체하여 해결되었습니다.

  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />

와 함께

  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />

packages.config에 있습니다.범인은 분명히 "net45"입니다.

비주얼 스튜디오 2022 .net.4.8

나는 이것을 실행하고 해결됩니다.

nuget package manager PM > Install-Package Microsoft를 사용하여 이 dll을 설치할 수 있습니다.Web.Infrastructure - 버전 1.0.0

언급URL : https://stackoverflow.com/questions/12669206/error-microsoft-web-infrastructure-version-1-0-0-0-culture-neutral-publickeyt

반응형