Nie można załadować typu „System.ServiceModel.Activation.HttpModule” z zestawu „System.ServiceModel”

91

Uruchamiam projekt sieci Web w usługach IIS.

Jest to aplikacja Framework 4.0.

Mam plik Service.svc i otrzymuję ten błąd podczas uruchamiania aplikacji.

„Nie można załadować typu„ System.ServiceModel.Activation.HttpModule ”z zestawu„ System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 ””

Próbowałem tego -> aspnet_regiis.exe -iru, które znalazłem na wielu forach i nie rozwiązało mojego problemu.

Czy ktoś zna inną metodę?

Nicolas Gago
źródło

Odpowiedzi:

160

Spróbuj z

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

Gdy wiele wersji platformy .NET Framework jest wykonywanych równolegle na jednym komputerze, wersja interfejsu ISAPI platformy ASP.NET zamapowana na aplikację ASP.NET określa, która wersja środowiska uruchomieniowego języka wspólnego (CLR) jest używana dla aplikacji.

Powyższe polecenie zainstaluje wersję ASP.NET, która jest skojarzona z Aspnet_regiis.exe i rejestruje tylko ASP.NET w usługach IIS.

https://support.microsoft.com/en-us/help/2015129/error-message-after-you-install-the--net-framework-4-0-could-not-load

Kishan Zunjare
źródło
1
również możemy użyć CMD: wpisując adres, cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 a następnie instalując go komendą: aspnet_regiis.exe -iru, następnie lepiej byłoby zrestartować ISS przez iisreset
Harry Sarshogh
2
To nadal okazuje się pomocne. Miałbym nadzieję, że do tej pory stwardnienie rozsiane naprawiłoby to. W moim przypadku mamy już uruchomioną aplikację IIS korzystającą z platformy ASP.net 4.0. Chociaż klient nie był do końca pewien, co klient zrobił poza aktualizacją do wersji 4.5.1 i kilkoma innymi aktualizacjami, konieczne stało się ponowne uruchomienie tego polecenia, o czym nasi inżynierowie pomocy technicznej nie pomyśleli, ponieważ nie musieli tego robić to przez jakiś czas.
ebol2000
Dziękuję za odpowiedź. to jednak nie zadziałało dla mnie. ale włączenie wszystkiego pod „.Net Framework 3.5” i „.Net Framework 4.5” w funkcjach systemu Windows (jak wspomniano w poniższych odpowiedziach) załatwiło sprawę.
Ozgur Bar
Mam serwer Windows 2008 x64 R2 i działał dobrze, ale po miesiącu dostałem ten błąd, znalazłem ten post i uruchomiłem to polecenie na moim serwerze i rozwiązało mój problem. Nigdy nie instaluję ani nie aktualizuję niczego na moim serwerze, teraz pytanie brzmi: dlaczego to się stało ?, czy to normalne, czy jest to typ hackowania czy coś w tym stylu?
motevalizadeh
1
To pracował dla mnie tylko wtedy, gdy biegnę aspnet_regiis.exe -iruza v4.0.XXXXX I v2.0.XXXXX wersjach!
1_bug
51

Mam zainstalowany system Windows 8 na moim komputerze, a narzędzie aspnet_regiis.exe również nie działało.

Rozwiązanie, które dla mnie zadziałało, znajduje się pod tym linkiem, w odpowiedzi od Neha: Błąd System.ServiceModel.Activation.HttpModule

Wszędzie wspomniano o problemie z tym rozwiązaniem jako ponownej rejestracji aspNet przy użyciu aspnet_regiis.exe. Ale to nie zadziałało dla mnie.

Chociaż jest to prawidłowe rozwiązanie (jak pięknie wyjaśniono tutaj)

ale to nie działało z Windows 8.

W przypadku systemu Windows 8 musisz mieć funkcje systemu Windows i włączyć wszystko w „.Net Framework 3.5” i „.Net Framework 4.5 Advanced Services”.

Dzięki, Neha

scubaFun
źródło
4
Ta rada jest również konieczna w przypadku systemu Windows Server 2012.
Chris O,
Dzięki za przekazanie tego. Świetnie
działało,
2
Nie musisz włączać wszystkiego, wystarczy aktywacja Http!
Marius Stănescu
To, co powiedział Marius, po prostu aktywacja HTTP pod funkcjami .NET 3.5
C. Ridley
Ty i Neha uratowaliście moje pozostałe włosy
Karim AG
36

Witam Dzięki za pytanie; Aby rozwiązać: „Nie można załadować typu„ System.ServiceModel.Activation.HttpModule ”z zestawu„ System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 ””

W funkcjach systemu Windows sprawdź, czy są dostępne zaawansowane usługi .NET 4 i .NET 3.5

wprowadź opis obrazu tutaj

Podobnie jak Nicolas Gago, próbowałem aspnet_regiis.exe -iru, ale to nie zadziałało. Po włączeniu funkcji zniknął błąd żółtego ekranu. Dzięki;

Catto
źródło
3
U mnie to zadziałało w systemie Windows Server 2012 R2 - dzięki!
NickG,
To samo dotyczy systemu Windows 8. Dziękuję!
NikitaBaksalyar
To naprawiło dla mnie Win8. Dzięki! +1
Darbio,
1
Musiałem tylko włączyć opcję „Aktywacja HTTP”, ponieważ hostowałem usługi w IIS. U mnie zadziałało, dzięki.
Dhanuka777
3
Pracował dla mnie w systemie Windows 10.
Justin
10

Te funkcje można zainstalować w systemie Windows Server 2012 za pomocą programu PowerShell za pomocą następujących poleceń:

Install-WindowsFeature -Name  NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature -Name  NET-WCF-HTTP-Activation45 -IncludeAllSubFeature

Możesz uzyskać listę funkcji za pomocą następującego polecenia:

Get-WindowsFeature | Format-Table
Preben Huybrechts
źródło
6

Ok, w końcu to rozumiem.

Zmień tę linię w %windir%\System32\inetsrv\Config\ApplicationHost.config

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />

Do

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />

Jeśli to nie wystarczy

Dodaj następujący wiersz do pliku Web.config

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Nicolas Gago
źródło
Zmiana ApplicationHost.config działała dla mnie w systemie Windows Server 2016. Wszystkie inne odpowiedzi nie pomogły. Dzięki!
Tobias
5

Z węzła Funkcje Menedżera serwera można również usunąć niektóre elementy podrzędne w ramach Funkcji .NET Framework 3.5.1, które są instalowane przez aktywację niektórych innych ról.

Na przykład usunęliśmy funkcje aktywacji WCF w następujący sposób, a nasze witryny internetowe wróciły:

  • [x] .NET Framework 3.5.1 Funkcje
    • [x] .NET Framework 3.5.1
    • [] Aktywacja WCF
      • [] Aktywacja HTTP
      • [] Aktywacja bez HTTP

Uwaga: nie wymagało to dla nas ponownego uruchomienia.

fordareh
źródło
4

W systemie Windows Server 2012. Przejdź do ISS -> Moduły -> Usuń ServiceModel3-0.

NikolasKraschowetz
źródło
1

Otrzymałem ten błąd po przypadkowym umieszczeniu jednej witryny w katalogu innej witryny. Obie strony miały różne wersje .net. Rozwiązaniem tego problemu była zmiana puli aplikacji. Aby to zrobić, w menedżerze IIS:

kliknij stronę internetową => Ustawienia zaawansowane ... (po prawej) => kliknij po prawej stronie puli aplikacji => powinien pojawić się przycisk z "..." => wybierz ".NET v4.5 Classic"

Jeśli ta pula aplikacji nie działa, wypróbuj inne.

quickq
źródło
0

Używamy usługi sieciowej obok witryny internetowej i kiedy publikujemy witrynę internetową, ten błąd zwraca ten sam błąd. Dowiedzieliśmy się, że przechodząc do IIS i usuwając ServiceModel z Modules i svc-Integrated z Handler Mappings, błąd zniknął.

Mike Donner
źródło
0

Spóźniłem się, mam nadzieję, że to komuś pomoże… Jest to znany problem z usługami IIS 8.0

Rozwiązaniem jest usunięcie modułu 3.xi obsługi z menedżera IIS. Możesz je usunąć na poziomie aplikacji lub witryny, jeśli chcesz je zachować w pliku applicationHost.config. Ale chciałem je usunąć z pliku applicationHost.config. wykonaj następujące czynności:

W Menedżerze usług IIS kliknij węzeł nazwy komputera. W „Widoku funkcji” kliknij dwukrotnie „Moduły”. Znajdź „ServiceModel” i usuń go. Obraz 1 przedstawiający błąd Solve IIS 8: nie można załadować typu „System.ServiceModel.Activation.HttpModule”

Wróć do „Widoku funkcji” węzła nazwy komputera, kliknij dwukrotnie „Mapowania obsługi”. Znajdź „svc-Integrated” i usuń go. Obraz 2 przedstawiający błąd Solve IIS 8: nie można załadować typu „System.ServiceModel.Activation.HttpModule”

Taran
źródło
0

Możesz zmienić ustawienia funkcji usług IIS.Łatwe kroki, aby rozwiązać problem, otwierając wiersz polecenia z uruchomieniem jako administrator (w systemie Windows Server 2008) i uruchamiając polecenie C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe - iru spowoduje to skonfigurowanie ASP.Net 4.0, a następnie zresetuj IIS za pomocą polecenia iisreset

Źródła: https://support.plesk.com/hc/en-us/articles/213392249-ASP-website-shows-error-Could-not-load-type-System-ServiceModel-Activation-HttpModule-from-assembly

Kailash Mali
źródło
-1

usuń moduł, który jest zidentyfikowany w komunikacie o błędzie .Net, 1 głos negatywny

W systemie Windows Server 2012. Przejdź do ISS -> Moduły -> Usuń ServiceModel3-0. (bez numeru pracował dla mnie)

Piotr
źródło
-1

start-> Uruchom -> c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

Mukesh Depani
źródło