2013-06-17 9 views
10

Mam zainstalowany i działający WebDAV na mojej witrynie, jako wirtualna pod-witryna mam interfejs WebAPI MVC site API działa świetnie, dopóki próbuję wysłać żądanie skierowane do niej, a następnie pojawia się poniżej błędu:WebDAV i WebAPI razem powodują błąd: Handler "ExtensionlessUrlHandler-Integrated-4.0" ma uszkodzony moduł "ManagedPipelineHandler" na liście modułów

błąd HTTP 500,21 - Internal Server Error

Handler „ExtensionlessUrlHandler-zintegrowane-4.0 "ma zły moduł" ManagedPipelineHandler "na liście modułów

Jeśli wyłączysz WebDAV, wszystko działa poprawnie i nie otrzymuję żadnych błędów. Dzieje się tak tylko po włączeniu WebDAV.

Mam wszystkie następującego kodu w moim web.config:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="false"> 
    <remove name="WebDAVModule" /> 
    </modules> 
    <handlers> 
    <remove name="WebDAV" /> 
    <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> 

Próbowałem aprowizacji z różnych pul aplikacji.

Ja również zmęczony wszystkie rzeczy, o których mowa w tych wszystkich pytań:

How to get rid of this error Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list

Handler "ExtensionlessUrlHandler-Integrated-4.0" has a bad module "ManagedPipelineHandler" in its module list

How to fix: Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list

Nic z tego nie ma rozwiązać mój problem, czy jest coś jeszcze tam, czego nie próbowałem?

+0

W konfiguracji, jeśli nie usuniesz programu obsługi WebDav, a zamiast tego dodasz go po tym, jak narzędzie ExtensionlessUrlHandler spowoduje ten sam problem? –

Odpowiedz

21

skończyło się do firmy Microsoft z tym, że przeglądowi przez kilka tygodni przed powrotem mówiąc, że nie można uruchomić WebDAV i WebAPI w tej samej witrynie.

Będą próbować rozwiązać ten problem w przyszłej wersji usług IIS.

0

Możesz mieć problem literowy w deklaracji obsługi. Thomas Marquardt's Blog says

5.0 Troubleshooting

If you receive an error similar to the one below, your section is probably invalid.

HTTP Error 500.21 - Internal Server Error Handler "" has a bad module "ManagedPipelineHandler" in its module list You probably have a handler mapping that does not have the correct precondition. IIS is not forgiving in regard to typos, and preconditions are case-sensitive. The text must be preCondition=”integratedMode” or preCondition=”classicMode”.

Również inna propozycja od uwag na temat tego artykułu:

Andrew Johnson 25 Jan 2011 3:20 AM #:

I found that I can also get the "Handler has a bad module ManagedPipelineHandler in its module list" if the handler has requireAccess="None". For me, changing this to requireAccess="Read" made the error go away.

To komentarz może mieć zastosowanie do sprawy, jak widzę, że w ApplicationHost.config wejście do ładowarki WebDAV jest (należy zwrócić uwagę na requredAccess="None"):

<add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> 
1

@jblaske ma dobrą odpowiedź.

Jeśli chcesz go tymczasowo usunąć, najlepszym rozwiązaniem może być this article.

Jeśli chcesz usunąć cały program obsługi, wykonaj następujące kroki.

  1. Otwórz IIS i przejdź do strony, której dotyczy problem.
  2. Kliknij "Handler Mappings"
  3. znaleźć obsługi o nazwie "WebDAV"
  4. Zaznacz go i usunąć go

To mój original post.

+0

Dziękuję za pomoc w usunięciu tego kłopotliwego małego *****: D +1 – ppumkin

Powiązane problemy