"ExtensionlessUrlHandler-Integrated-4.0" 처리기의 모듈 목록에 잘못된 모듈 "ManagedPipelineHandler"가 있음
솔직히, 저는 IIS에서 비열한 속임수를 쓰려고 노력했지만, 제가 그것을 피할 수 있을 거라고 생각했을 때, 저는 제 해결책이 효과가 없다는 것을 깨달았습니다.제가 시도한 것은 다음과 같습니다.
ASP를 가지고 있습니다.IP 프로세스를 상속하는 Preloader 클래스가 있는 NET 응용 프로그램HostPreloadClient 및 Preload 메서드 구현에서 모든 과중한 초기화 작업을 수행합니다(애플리케이션은 복잡하고 거대한 시스템의 일부이므로 필요한 모든 서비스에 대한 연결을 설정하고 일부 Unity 등록을 사전 인스턴스화하는 데 약 2분이 소요됨).
애플리케이션 종료(구독 취소, 연결 끊기, 폐기 등) 시 수행해야 할 작업이 많은데, Global.asax에 있는 *Application_End* 메서드에서 수행하는 것이 가장 좋습니다.
사용자 활동이 있을 때는 모든 것이 정상적으로 작동합니다(앞에서 언급한 웹 애플리케이션이 포함된 애플리케이션 풀이 시작된 후 첫 번째 요청으로 인해 *Application_Start*가 호출되고 이후 *Application_End*가 애플리케이션 풀 중지 또는 재활용 시 호출됨).그러나 사용자 작업이 없고 48시간(구성된 요구 사항) 동안 활성화된 후 응용 프로그램을 다시 시작하려고 하면 문제가 발생합니다.요청이 없었기 때문에, 애플리케이션이 공식적으로 시작되지 않았습니다.에르고, *Application_End*가 호출되지 않으므로 정상적으로 중지할 수 없습니다.
이제 지저분한 부분이 나옵니다.프리로드 방법 끝에 있는 코드에서 GET 요청을 시도해 보았는데 성공했습니다.하지만 이 해결책은 효과가 있음에도 불구하고 저에게는 좋지 않은 것처럼 보였습니다.그래서, 저는 많은 것들을 시도했고, 마지막으로 시도한 것은 다음과 같습니다.
SimpleWorkerRequest swr = new SimpleWorkerRequest(string.Empty, string.Empty, tw);
HttpRuntime.ProcessRequest(swr);
그리고 그것이 목적을 달성했습니다.*Application_Start*가 호출되었으며(응답 확인 결과, 초기 요청에 표시되어야 할 로그인 페이지가 포함되어 있었습니다), Application Pool 종료 시 *Application_End*에서 필요한 작업을 수행하여 애플리케이션을 정상적으로 종료했습니다.
그렇지만
이러한 방식으로 응용 프로그램을 시작(사전 로드 및 시작)한 후 웹 브라우저를 통해 응용 프로그램에 액세스하려고 하면 다음과 같이 됩니다.
HTTP 오류 500.21 - 내부 서버 오류 처리기 "ExtensionlessUrlHandler-Integrated-4.0"의 모듈 목록에 잘못된 모듈 "ManagedPipelineHandler"가 있습니다.
저는 이것을 이해할 수 없습니다.누가 왜 이런 일이 일어나고 어떻게 해결해야 하는지 말해줄 수 있나요?
이 문제를 해결하지 못하면 첫 번째 솔루션(코드에서 GET 요청 전송)으로 돌아가지만, 무엇이 잘못되었는지조차 모르기 때문에 이 문제가 저를 괴롭힐 것입니다.
ASP 재등록을 시도합니다.을 사용한 »aspnet_regiis -i
효과가 .그것은 나에게 효과가 있었다.
에 대한 가능한 경로.NET 4(높은 명령 프롬프트에서):
c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
http://forums.iis.net/p/1190643/2026401.aspx
Windows 8/Windows Server 2012 및 에서 이 오류가 발생하는 경우Net 4.5는 다음 지침을 따릅니다. http://www.britishdeveloper.co.uk/2013/01/handler-extensionlessurlhandler.html
Windows 기능 설정 또는 해제로 이동한 다음 인터넷 정보 서비스, World Wide Web Services, Application Development Features로 이동한 다음 ASP를 활성화합니다.NET 4.5
Windows Server 2012에서는 마법사와 문구가 조금 다르지만 이 방법을 사용할 수 있습니다.이 말이 나왔으니, 웹 플랫폼 설치 프로그램을 통해 모든 종속성을 포함한 모든 것을 설치한 후에 이것이 필요한 이유는 저를 완전히 이해할 수 없습니다.
이 페이지에 대한 대부분의 조언을 따랐음에도 불구하고 Windows Server 2012에서 여전히 문제가 발생했습니다.설치 중.NET Extensibility 4.5를 통해 해결되었습니다.
Add Roles and Features > Server Roles > Web Server (IIS) > Web Server > Application Development > .NET Extensibility 4.5
Windows 10 / Windows Server 2016의 경우 다음 명령을 사용합니다.
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
은 제된답다같습다니과음은변안으로 답합니다.aspnet_regiis
Windows 10(Creators Update 이상) Windows Server 2016은 Windows Server 2016의 파일입니다.
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regis.
Microsoft(R) ASP.NET RegI 제4.0.30319.0조
ASP를 설치 및 제거하는 관리 유틸리티입니다.로컬 컴퓨터의 NET.
(C) Microsoft Corporation.무단 전재 금지.
ASP 설치를 시작합니다.NET(4.0.30319.0).
이 버전의 운영 체제에서는 이 옵션이 지원되지 않습니다. 관리자는 대신 ASP를 설치/제거해야 합니다.NET 4.5와 IIS8을 사용하여 "Windows 기능 켜기/끄기" 대화상자, 서버 관리자 관리 도구 또는 해제합니다.exe 명령줄 도구.자세한 내용은 http://go.microsoft.com/fwlink/ ?LinkID=21671을 참조하십시오.
ASP 설치를 마쳤습니다.NET(4.0.30319.0).
흥미롭게도 "Windows 기능 켜기/끄기" 대화 상자에서는 선택을 해제할 수 없었습니다.NET 또는 ASP.NET 4.6, 그리고 위의 DISM 명령만 작동했습니다.기능 이름이 맞는지 확실하지 않지만 저에게는 효과가 있었습니다.
다음 명령 중 하나를 실행합니다.
32비트 Windows OS의 경우:
c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
64비트 Windows OS의 경우:
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -I
이 https://stackoverflow.com/a/13266763/1277458 은 완벽하게 작동합니다.그러나 64비트 운영 체제를 사용하는 경우 경로에서 Framework 대신 Framework64를 사용합니다.
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
그 문제는
SimpleWorkerRequest를 사용하도록 설계되지 않은 시나리오에서 사용하고 있습니다.IIS 내부에서 사용 중입니다.이전 MSDN 링크를 보면 다음과 같습니다(강조 사항은 나의 것임).
ASP를 호스팅하는 데 사용할 수 있는 HttpWorkerRequest 추상 클래스의 간단한 구현을 제공합니다.IIS(인터넷 정보 서비스) 응용 프로그램 외부의 NET 응용 프로그램입니다.SimpleWorkerRequest를 직접 사용하거나 확장할 수 있습니다.
또한 시스템에 대한 MSDN 설명서를 보면 다음과 같습니다.Web.호스팅 네임스페이스(SimpleWorkerRequest
이 네임스페이스에 있음), 위와 유사한 내용도 표시됩니다(다시 말하지만 강조는 내 것입니다).
시스템.Web.Hosting 네임스페이스는 ASP 호스팅 기능을 제공합니다.Microsoft IIS(Internet Information Services) 외부의 관리되는 응용 프로그램의 NET 응용 프로그램입니다.
해결책
에 대한 통화를 삭제할 것을 권장합니다.SimpleWorkerRequest
대신 Microsoft 솔루션을 사용하여 웹 사이트가 재활용된 후 자동으로 시작되도록 할 수 있습니다.필요한 것은 IIS 7.5용 마이크로소프트 응용 프로그램 초기화 모듈입니다.구성하는 것은 복잡하지 않지만 정확한 옵션을 이해해야 합니다.이러한 이유로 IIS 7.5용 응용 프로그램 초기화 UI도 권장합니다.UI는 MSDN 블로거가 작성합니다.
그렇다면 마이크로소프트 솔루션은 정확히 어떤 역할을 할까요?응용프로그램 풀이 시작된 후 IIS는 웹 사이트로 "취득" 요청을 보냅니다.
제 경우(Windows 10 + IIS 10) "Windows 기능 켜기 또는 끄기"를 연 다음 인터넷 정보 서비스 > World Wide Web Services > Application Development Features >로 이동하여 ASP를 확인해야 했습니다.NET 4.6
Windows 기능 설정 또는 해제 옵션 ASP를 추가하여 이 문제를 해결했습니다.NET 4.7
이 게시물을 자신의 게시물로 만드는 것은 몇 시간 동안 저를 힘들게 했기 때문입니다.
저는 이 문제와 aspnet_regiis 수정에 대해 이곳과 다른 곳에서 수십 개의 비슷한 게시물을 보았습니다.그들은 나를 위해 일하지 않았고, aspnet_regis는 단지 옵션 등을 나열하면서 이상하게 행동했습니다.
위의 사용자 Ryan-anderson이 표시한 것처럼 .exe를 입력할 수 없습니다.
서버의 IIS 외부에서 사용하기 불편한 사용자를 위해 간단한 단계로 수행하는 작업은 다음과 같습니다.
이 경로와 유사한 폴더에서 aspnet_regiis를 찾습니다. c:\Windows\MicrosoftNET 프레임워크\v4.0.30319\
시작 메뉴 또는 아무 곳에서나 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행하도록 지시합니다.Windows "실행" 기능을 사용하면 작동하지 않거나 작동하지 않습니다.
aspnet_regiis 실행 파일로 돌아갑니다.명령 프롬프트로 마우스 오른쪽 단추를 누르거나 명령 프롬프트에 주소를 복사하여 붙여넣습니다.
끝에 있는 .exe를 제거합니다.이것이 열쇠입니다.마지막에 -i(눈을 뺀 공백)를 추가합니다.를 입력하십시오.
이 작업을 올바르게 수행하면 asp.net 설치가 시작되고 성공했음을 알 수 있습니다.
설정했는지 확인합니다.application-site
에서 버온전의 버전v2.0
v4.0
IIS 관리자:
Application Pools > Your Application > Advanced Settings > .NET Framework
다음 그런다 다니설합을 합니다.ASP.NET
.
32비트 OS(Windows)의 경우:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regis.exe-i
64비트 OS(Windows)의 경우:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regis.exe-i
를 다시 합니다.application-site
IIS 관리자에서 즐겨야 합니다.
이게 오래된 일인 건 알지만, 제가 가치를 좀 더 할 수 있을 거라고 생각했어요.도메인 외부에서 Server Core를 실행하는 사용자(도메인 구성원은 서버 관리자를 원격으로 실행하여 기능/역할을 추가/제거할 수 있음)의 경우 명령줄에 의존해야 합니다.
Powershell 사용자는 "Install-Windows Feature Web-Asp-Net45"를 입력할 수 있습니다.
이는 서버 관리자를 사용하는 것과 같아야 합니다.
.net 4.7이 설치된 동일한 오류 메시지가 발생했습니다.
해결책은 앞에서 언급한 한 게시물을 따라 "Windows 기능 켜기 또는 끄기"로 이동하는 것이었습니다.NET Framework 4.7 고급 서비스" --> "ASP.NET 4.7"이(가) 이미 선택되었습니다.
목록 아래에는 "인터넷 정보 서비스"와 하위 노트 "응용 프로그램 개발 기능" --> "ASP"가 있습니다.NET 4.7"도 확인해야 합니다.
이 옵션을 활성화하면 다른 기능의 할당이 활성화됩니다.확인 버튼만 누르면 문제가 해결됩니다.창 기능 대화 상자의 화면 덤프
설치 중.NET 4.7이 작동했습니다.저는 이전에 3.5만 설치했습니다.
Windows Server 2012에서 작업하고 있습니다.NET 확장성 4.5 기능이 켜져 있습니다.WebDAV 모듈이 제거되었습니다.ASP에서 아직 500.21 오류가 발생했습니다.NET 경로 '/docs'입니다.
'관리되는 모듈 건너뛰기'를 false로 변경하여 문제를 해결했습니다.
<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
<add initializationPage="/docs" />
</applicationInitialization>
https://groups.google.com/forum/ #!topic/bonobo-git-server/GbdMXdDO4tI 덕분입니다.
이 문제가 발생하여 비익스프레스 버전에서도 다음 폴더를 제거하는 것이 도움이 된다는 것을 알게 되었습니다.급행:
C:\Users\<user>\Documents\IISExpress
이 오류는 지난 주에 갑자기 발생하기 시작해서 제 컴퓨터의 기존 웹 사이트에 영향을 미치기 시작했습니다.저는 여기서 어떤 제안도 시도해 보지 못했습니다.결국 저는 IIS에서 WebDAV를 완전히 제거했습니다(Windows Features -> Internet Information Services -> World Wide Web Services -> Common HTTP Features -> WebDAV Publishing).저는 좋은 측정을 위해 이 후에 IIS를 재설정했고, 마침내 제 오류가 해결되었습니다.
Windows(윈도우) 업데이트가 문제를 시작한 것으로 추측할 수 있을 뿐 확실하지 않습니다.
"ExtensionlessUrlHandler-Integrated-4"를 변경하여 수정할 수 있습니다.0"을 입력합니다.Web.DefaultHttpHandler
, 하면 응용 에서 "", "WebDAV"가 됩니다.503 Service Unavailable
사시오 류메시지를 사용할 때 .PUT
또는DELETE
그래서 다시 설치했습니다.저는 또한 완전히 제거하려고 노력했습니다.NET Framework 4.5를 다시 설치하고 제안대로 재등록을 시도했지만 소용이 없었습니다.
개별 응용 프로그램 풀에 대해 WebDAV를 비활성화하여 이 문제를 해결할 수 있었습니다. 이로 인해 사용 시 '불량 모듈' 오류가 중지되었습니다.PUT
또는DELETE
.
개별 앱 풀에 대해 WebDAV 사용 안 함:
- 영향을 받는 애플리케이션 풀 클릭
- »
WebDAV Authoring Tools
- 클릭하여 엽니다.
- 릭
Disable WebDAV
오른쪽 위에
타다아!
제거 항목을 아직도 내 안에 두고 왔습니다.web.config
java.
<system.webServer>
<modules>
<remove name="WebDAVModule"/>
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
<system.webServer>
이 링크가 제가 설명서를 찾은 곳인데 잘 모르겠어요.
이는 OP에 유용한 솔루션은 아닐 수 있지만 동일한 "오류" 메시지와 관련이 있습니다.
IIS 8.5에서 PHP 페이지를 호스팅하고 있습니다.NET 4.5가 올바르게 설치되었습니다.
사전 로드 기능을 사용하여 애플리케이션이 전반적으로 항상 응답할 수 있도록 합니다.
잠시 후 우리는 이 오류를 무작위로 받기 시작했습니다.
web.config: skipManagedModules를 true로 설정했습니다. -> 이러지 마십시오!
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<applicationInitialization skipManagedModules="false" doAppInitAfterRestart="true">
<add initializationPage="/" />
</applicationInitialization>
...
웹사이트는 php이지만, 페이징에 대한 라우팅은 모듈에 의해 관리됩니다!!!
저도 그 문제에 부딪혔습니다.MVC4 앱이 IIS 8.5가 설치된 윈도우즈 Server 2012 R2에서 실행되고 있습니다. 게시된 솔루션 중 아무 것도 작동하지 않았습니다. IIS 기능을 통해 누락된 프레임워크를 설치하면 문제를 해결할 수 있었지만 설치가 항상 실패했습니다.
나는 그것을 사용해야 했습니다.Web Platform Installer
다음 패키지를 설치했습니다.
공유 호스팅 서버에서 호스팅되는 웹 응용 프로그램에서 이 문제에 직면했습니다.따라서 분명히 IIS에 직접 액세스할 수 없었기 때문에 여기에 제안된 많은 솔루션을 적용할 수 없었습니다.
호스팅 공급자의 제어판에서 IIS 및 ASP에 대한 오류 로깅을 사용하도록 설정했습니다.넷. 그리고 나서 그 오류가 누락된 cshtml에 있다는 것을 알게 되었습니다.
언급URL : https://stackoverflow.com/questions/13162545/handler-extensionlessurlhandler-integrated-4-0-has-a-bad-module-managedpipeli
'programing' 카테고리의 다른 글
디렉토리의 모든 파일 이름을 $filename_h에서 $filename_half로 변경하시겠습니까? (0) | 2023.05.03 |
---|---|
각 모델에 중첩된 MVC 레이저 뷰 (0) | 2023.05.03 |
잠시 후의 휴식...웬드루프 (0) | 2023.05.03 |
Mongoose에서 Model.findOne()과 Model.findById()의 차이점은 무엇입니까? (0) | 2023.05.03 |
PowerShell 또는 C#에서 프로세스에 대한 명령줄 정보를 가져오는 방법 (0) | 2023.05.03 |