Typ 'System.ServiceModel.Activation.HttpModule' konnte nicht aus Assembly 'System.ServiceModel geladen werden

88

Ich führe mein Webprojekt in IIS aus.

Es ist eine 4.0 Framework APP.

Ich habe eine Service.svc und erhalte diesen Fehler, wenn ich meine Anwendung ausführe.

"Typ 'System.ServiceModel.Activation.HttpModule' konnte nicht aus Assembly 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' geladen werden."

Ich habe dies versucht -> aspnet_regiis.exe -iru, das ich in vielen Foren gefunden habe und das mein Problem nicht gelöst hat.

Kennt jemand eine andere Methode?

Nicolas Gago
quelle

Antworten:

156

Versuche es mit

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

Wenn mehrere Versionen von .NET Framework nebeneinander auf einem einzelnen Computer ausgeführt werden, bestimmt die einer ASP.NET-Anwendung zugeordnete ASP.NET ISAPI-Version, welche Version der Common Language Runtime (CLR) für die Anwendung verwendet wird.

Der obige Befehl installiert die Version von ASP.NET, die Aspnet_regiis.exe zugeordnet ist, und registriert nur ASP.NET in IIS.

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

Kishan Zunjare
quelle
1
Wir können auch CMD verwenden: Geben Sie die Adresse cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 ein und installieren Sie sie anschließend mit dem Befehl: aspnet_regiis.exe -iru. Als Nächstes ist es besser, ISS per iisreset neu zu starten
Harry Sarshogh
2
Dies erweist sich auch heute noch als hilfreich. Ich hätte gehofft, dass MS dies inzwischen behoben hätte. In meinem Fall haben wir bereits eine laufende IIS-Anwendung, die das ASP.net 4.0-Framework verwendet. Obwohl wir nicht genau wissen, was der Kunde getan hat, außer auf 4.5.1 und eine Reihe anderer Updates zu aktualisieren, wurde es notwendig, diesen Befehl erneut auszuführen, woran unsere Support-Ingenieure nicht gedacht haben, weil sie es nicht mussten es für einige Zeit.
ebol2000
Danke für die Antwort. Dies funktionierte jedoch nicht für mich. Aber das Aktivieren von allem unter '.Net Framework 3.5' und '.Net Framework 4.5' in Windows-Funktionen (wie in den folgenden Antworten erwähnt) hat den Trick getan.
Ozgur Bar
Ich habe einen Windows Server 2008 x64 R2 und es hat gut funktioniert, aber nach einem Monat habe ich diesen Fehler erhalten, ich habe diesen Beitrag gefunden und diesen Befehl auf meinem Server ausgeführt und mein Problem behoben. Ich installiere oder aktualisiere nie etwas auf meinem Server. Jetzt stellt sich die Frage, warum es passiert ist. Ist es normal oder es ist ein Hack-Typ oder so etwas?
Motevalizadeh
1
Es hat bei mir nur funktioniert, wenn ich aspnet_regiis.exe -irufür v4.0.XXXXX AND- v2.0.XXXXX Versionen laufe !
1_bug
49

Ich habe Windows 8 auf meinem Computer installiert, und das Tool aspnet_regiis.exe hat auch bei mir nicht funktioniert.

Die Lösung, die für mich funktioniert hat, finden Sie unter diesem Link in der Antwort von Neha: System.ServiceModel.Activation.HttpModule-Fehler

Überall wurde das Problem dieser Lösung als Neuregistrierung von aspNet mithilfe von aspnet_regiis.exe erwähnt. Aber das hat bei mir nicht funktioniert.

Obwohl dies eine gültige Lösung ist (wie hier wunderschön erklärt)

aber es funktionierte nicht mit Windows 8.

Für Windows 8 müssen Sie Windows-Funktionen verwenden und alles unter ".Net Framework 3.5" und ".Net Framework 4.5 Advanced Services" aktivieren.

Danke Neha

scubaFun
quelle
4
Dieser Rat ist auch für Windows Server 2012 erforderlich.
Chris O
Vielen Dank für die Weitergabe. Arbeitete großartig, um dies auf Win 8.1
JJMpls
2
Sie müssen nicht alles aktivieren, nur die HTTP-Aktivierung!
Marius Stănescu
Was Marius gesagt hat, nur HTTP-Aktivierung unter .NET 3.5-Funktionen
C. Ridley
Sie & Neha haben meine restlichen Haare gerettet
Karim AG
36

Hallo Danke für die Frage; So lösen Sie Folgendes auf: "Typ 'System.ServiceModel.Activation.HttpModule' konnte nicht aus Assembly 'System.ServiceModel, Version = 3.0.0.0, Kultur = neutral, PublicKeyToken = b77a5c561934e089' geladen werden."

Überprüfen Sie in den Windows-Funktionen alle auf .NET 4 Advanced Services und .NET 3.5

Geben Sie hier die Bildbeschreibung ein

Genau wie Nicolas Gago habe ich aspnet_regiis.exe -iru ausprobiert, aber es hat nicht funktioniert. Nachdem die Funktionen aktiviert waren, war der gelbe Bildschirmfehler verschwunden. Vielen Dank;

Catto
quelle
3
Dies hat bei mir in Windows Server 2012 R2 funktioniert - danke!
NickG
Gleiches gilt für Windows 8. Vielen Dank!
NikitaBaksalyar
Dies hat Win8 für mich behoben. Vielen Dank! +1
Darbio
1
Ich musste nur "HTTP-Aktivierung" aktivieren, da ich die Dienste in IIS gehostet habe. Es hat bei mir funktioniert, danke.
Dhanuka777
3
Arbeitete für mich in Windows 10.
Justin
10

Sie können diese Funktionen unter Windows Server 2012 mit Powershell mithilfe der folgenden Befehle installieren:

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

Mit dem folgenden Befehl können Sie eine Liste der Funktionen abrufen:

Get-WindowsFeature | Format-Table
Preben Huybrechts
quelle
6

Ok, endlich verstanden.

Ändern Sie diese Zeile in %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" />

Zu

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

Wenn das nicht reicht

Fügen Sie diese folgende Zeile zur Web.config hinzu

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Nicolas Gago
quelle
Das Ändern der ApplicationHost.config funktionierte für mich mit Windows Server 2016. Alle anderen Antworten haben nicht geholfen. Vielen Dank!
Tobias
5

Auf dem Knoten Features des Server-Managers können Sie auch einige der Unterelemente unter .NET Framework 3.5.1-Features entfernen, die durch die Aktivierung einiger anderer Rollen installiert werden.

Entfernen Sie beispielsweise die WCF-Aktivierungsfunktionen wie folgt und unsere Websites sind zurückgekehrt:

  • [x] .NET Framework 3.5.1-Funktionen
    • [x] .NET Framework 3.5.1
    • [] WCF-Aktivierung
      • [] HTTP-Aktivierung
      • [] Nicht-HTTP-Aktivierung

Hinweis: Für uns war kein Neustart erforderlich.

fordareh
quelle
4

In Windows Server 2012. Gehen Sie zu ISS -> Module -> Entfernen Sie das ServiceModel3-0.

NikolasKraschowetz
quelle
1

Ich habe diesen Fehler erhalten, nachdem ich versehentlich eine Website im Verzeichnis einer anderen Website veröffentlicht habe. Die beiden Websites hatten unterschiedliche Versionen von .net. Was es für mich behoben hat, war das Ändern des Anwendungspools. Dazu im IIS-Manager:

Klicken Sie auf die Website => Erweiterte Einstellungen ... (rechts) => Klicken Sie rechts neben Anwendungspool => Eine Schaltfläche mit "..." sollte angezeigt werden => Wählen Sie ".NET v4.5 Classic".

Wenn dieser Anwendungspool nicht funktioniert, probieren Sie einige der anderen aus.

quickq
quelle
0

Wir verwenden einen Webdienst neben einer Website. Wenn wir die Website veröffentlichen, wird dieser Fehler zurückgegeben. Wir haben herausgefunden, dass der Fehler behoben wurde, indem wir in IIS gingen und das ServiceModel aus den Modulen und das svc-Integrated aus den Handler-Zuordnungen entfernten.

Mike Donner
quelle
0

Ich bin spät dran, hoffe es hilft jemandem ... Dies ist ein bekanntes Problem mit IIS 8.0

Die Lösung besteht darin, das 3.x-Modul und den Handler aus dem IIS-Manager zu löschen. Sie können sie auf Anwendungs- oder Site-Ebene löschen, wenn Sie sie in applicationHost.config behalten möchten. Aber ich wollte sie aus applicationHost.config löschen. Führen Sie die folgenden Schritte aus:

Klicken Sie im IIS-Manager auf den Knoten Computername. Doppelklicken Sie in "Funktionsansicht" auf "Module". Suchen Sie nach "ServiceModel" und entfernen Sie es. Bild 1 zum Lösen von IIS 8 Fehler: Typ 'System.ServiceModel.Activation.HttpModule' konnte nicht geladen werden.

Kehren Sie zur "Funktionsansicht" des Knotens für den Computernamen zurück und doppelklicken Sie auf "Handler-Zuordnungen". Suchen Sie nach "svc-Integrated" und entfernen Sie es. Bild 2 zum Lösen von IIS 8 Fehler: Typ 'System.ServiceModel.Activation.HttpModule' konnte nicht geladen werden.

Taran
quelle
0

Möglicherweise haben Sie die Einstellungen für die IIS-Funktionen geändert. Die einfachen Schritte, die durch Öffnen der Eingabeaufforderung mit Ausführen als Administrator (für Windows Server 2008) und Ausführen des Befehls C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe ausgeführt werden müssen - In diesem Fall wird ASP.Net 4.0 eingerichtet und anschließend der IIS mit dem Befehl iisreset zurückgesetzt

Referenzen: 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
quelle
-1

Löschen Sie das Modul, das in der .Net-Fehlermeldung angegeben ist

In Windows Server 2012. Gehen Sie zu ISS -> Module -> Entfernen Sie das ServiceModel3-0. (ohne Nummer hat bei mir gearbeitet)

Peter
quelle
-1

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

Mukesh Depani
quelle