Μήνυμα λάθους μετά την εγκατάσταση την 4.0 του .NET Framework: "Δεν ήταν δυνατή η φόρτωση τύπου 'System.ServiceModel.Activation.HttpModule'"


Συμπτώματα


Εξετάστε το ακόλουθο σενάριο. Μπορείτε να εγκαταστήσετε το 4.0 του .NET Framework. Στη συνέχεια, μπορείτε να εγκαταστήσετε μια παλαιότερη έκδοση του .NET Framework ή ενεργοποίηση .NET 3.0 WCF HTTP ενεργοποίησης. Σε αυτό το σενάριο, ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους όταν κατά την εκτέλεση εφαρμογών που φιλοξενείται στις υπηρεσίες πληροφοριών Internet (IIS):

Δεν ήταν δυνατή η φόρτωση του τύπου 'System.ServiceModel.Activation.HttpModule' από τη συγκρότηση ' System.ServiceModel, έκδοση = 3.0.0.0, κουλτούρα = ουδέτερη, PublicKeyToken = b77a5c561934e089'.
Περιγραφή: Παρουσιάστηκε μια ανεπίλυτη εξαίρεση κατά την εκτέλεση της τρέχουσας αίτησης web. Ελέγξτε την ιχνηλάτηση στοίβας για περισσότερες πληροφορίες σχετικά με το σφάλμα και την προέλευσή του στον κώδικα.

Λεπτομέρειες εξαίρεσης: System.TypeLoadException: δεν ήταν δυνατή η φόρτωση του τύπου 'System.ServiceModel.Activation.HttpModule' από τη συγκρότηση ' System.ServiceModel, έκδοση = 3.0.0.0, κουλτούρα = ουδέτερη, PublicKeyToken = b77a5c561934e089'.

Αιτία


Αυτό το ζήτημα προκύπτει επειδή το αρχείο Applicationhost.config για Windows διαδικασία ενεργοποίησης υπηρεσίας (WAS) έχει την παρακάτω ενότητα ορίζονται και σε αυτήν την ενότητα δεν είναι συμβατό με το 4.0 του .NET Framework:

< Προσθήκη ονόματος = "ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, έκδοση = 3.0.0.0, κουλτούρα = ουδέτερη, PublicKeyToken = b77a5c561934e089" προϋπόθεση = "managedHandler" / >

Αυτή η ενότητα θα πρέπει να ορίζονται ως εξής:

< Προσθήκη ονόματος = "ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, έκδοση = 3.0.0.0, κουλτούρα = ουδέτερη, PublicKeyToken = b77a5c561934e089" προϋπόθεση = "managedHandler, runtimeVersionv2.0" / >

Σημείωση Μπορείτε να βρείτε το αρχείο Applicationhost.config στην ακόλουθη θέση:

%windir%\system32\inetsrv\config

Προτεινόμενη αντιμετώπιση


Για να επιλύσετε αυτό το ζήτημα, εκτελέστε την ακόλουθη γραμμή εντολών:

aspnet_regiis.exe /iru

Μπορείτε να βρείτε το αρχείο Aspnet_regiis.exe σε μία από τις ακόλουθες θέσεις:

%windir%\Microsoft.NET\Framework\v4.0.30319

%windir%\Microsoft.NET\Framework64\v4.0.30319 (σε έναν υπολογιστή 64-bit)