Tag: IIS

WCF i Handler “svc-Integrated” has a bad module “ManagedPipelineHandler” in its module list

Czas na trzeci już i ostatni błąd na który natrafiłem przy próbach wdrożenia serwisu WCF na serwer IIS. Brzmi on następująco:

Handler “svc-Integrated” has a bad module “ManagedPipelineHandler” in its module list Handler "svc-Integrated" has a bad module "ManagedPipelineHandler" in its module list

Podobnie jak w przypadku wcześniejszego błędu “The page you are requesting cannot be served because of the extension configuration” wystarczy wykorzystać narzędzie dostarczone z Visual Studio i dostępne w Visual Studio Command Prompt. Jest nim aspnet_regiis.exe. Podobnie jak poprzednie uruchamiamy je z parametrem -i. Zatem całość prezentuje się następująco:

aspnet_regiis.exe -i

aspnet_regiis.exe -i

Oczywiście należy pamiętać o uruchomieniu Visual Studio Command Prompt w kontekście administratora, gdyż w przeciwnym wypadku operacja ta się nie powiedzie.

Przyczyną tych błędów jest fakt, że zanim zainstalowałem serwer IIS miałem już zainstalowane Visual Studio. Jeżeli rozpatrujemy odwrotną kolejność instalacji, wowczas VS samodzielnie rejestruje i dodaje do systemu odpowiednie komponenty. Nie mniej jednak jeżeli podobnie jak ja zamienicie kolejność, wówczas te trzy posty mogą wam się przydać.

Dla przypomnienia wcześniejsze potyczki z błędami:

WCF i The page you are requesting cannot be served because of the extension configuration
WCF i This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.


WCF i This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Drugi problem, na który natrafiłem przy instalacji serwisu WCF na IIS brzmiał

This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Co w tej sytuacji zrobić. Okazuje się, że tym razem sprawa jest dużo prostsza niż w przypadku poprzedniego błędu. Tym razem wystarczy nieco namieszać w ustawieniach pól aplikacji serwera IIS. Problem polega na tym, że póla, w kontekście której uruchamiana jest usługa, działa w oparciu o niewłaściwą wersję .NET Framework. W moim przypadku ustawiona jest wersja 2.0, natomiast udostępniana przeze mnie usługa wymaga wersji 4.0. W związku z tym najwygodniej jest utworzyć w panelu zarządzania pólami aplikacji nową, na przykład o nazwie .NET 4 i w ustawieniach zaawansowanych wybrać odpowiednią wersję .NET Framework

application pool settings

Kolejnym krokiem jest wybranie dla naszej aplikacji nowo utworzonej póli z właściwą wersją Frameworka i gotowe.


WCF i The page you are requesting cannot be served because of the extension configuration

W momencie gdy chcemy uruchomić na serwerze IIS usługę stworzoną przy pomocy technologii WCF pojawia się nieoczekiwany błąd:

The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

The page you are requesting cannot be served because of the extension configuration

Dzieje się tak w przypadku odwołania do plików *.SVC, które są odpowiedzialne za udostępnianie kontraktów usług na zewnątrz.

W jaki sposób go rozwiązać? Otoż pierwsze co należy zrobić, to uruchomienie Visual Studio Command Prompt w trybie administratora. Następnie należy udać się do katalogu:

%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation

W tymże katalogu znajduje się narzędzie ServiceModelReg.exe, które należy uruchomić z parametrem -i. W wyniku otrzymujemy informację o zainstalowaniu poszczególnych komponentów niezbędnych do uruchomienia usług WCF przy pomocy serwera IIS. Wynik działania polecenia widoczny jest poniżej.

 ServiceModelReg.exe -i result


  • O mnie

    Maciej Grabek

    Moje profile na:

    MVP

    Codeguru.pl GoldenLine
    Twitter CodeProject

  • english version
  • Polecam

  • Copyright © Maciej Grabek. All rights reserved.
    Powered by WordPress
    %d bloggers like this: