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ę?

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


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


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;


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

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>

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.




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.


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ął.


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”


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


-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)


-1

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.