Thông báo lỗi sau khi bạn cài đặt .NET Framework 4.0: "Không thể tải loại 'System.ServiceModel.Activation.HttpModule'"


Triệu chứng


Xem xét kịch bản sau đây. Bạn cài đặt .NET Framework 4.0. Sau đó, bạn cài đặt phiên bản cũ hơn của .NET Framework hoặc cho phép bạn kích hoạt .NET 3.0 WCF HTTP. Trong trường hợp này, bạn có thể nhận được thông báo lỗi khi bạn khi chạy các ứng dụng lưu trữ trên dịch vụ thông tin Internet (IIS):

Không thể tải loại 'System.ServiceModel.Activation.HttpModule' từ ' System.ServiceModel, phiên bản = 3.0.0.0, văn hóa = neutral, PublicKeyToken = b77a5c561934e089'.
Mô tả: Các ngoại lệ xảy ra trong quá trình thực hiện yêu cầu web hiện tại. Vui lòng xem lại dấu vết xếp chồng để biết thêm thông tin về lỗi và vị trí xuất hiện lỗi trong mã.

Ngoại lệ chi tiết: System.TypeLoadException: không thể tải loại 'System.ServiceModel.Activation.HttpModule' từ ' System.ServiceModel, phiên bản = 3.0.0.0, văn hóa = neutral, PublicKeyToken = b77a5c561934e089'.

Nguyên nhân


Sự cố này xảy ra vì tệp applicationhost.config liên quan cho Windows quá trình kích hoạt dịch vụ (WS) có các phần sau đây xác định và phần này không tương thích với .NET Framework 4.0:

< thêm tên = "Mô hình dịch vụ" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, phiên bản = 3.0.0.0, văn hóa = neutral, PublicKeyToken = b77a5c561934e089" điều kiện tiên quyết = "managedHandler" / >

Phần này sẽ được xác định như sau:

< thêm tên = "Mô hình dịch vụ" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, phiên bản = 3.0.0.0, văn hóa = neutral, PublicKeyToken = b77a5c561934e089" điều kiện tiên quyết = "managedHandler, runtimeVersionv2.0" / >

Lưu ý Bạn có thể tìm thấy tệp applicationhost.config liên quan trong vị trí sau:

%windir%\system32\inetsrv\config

Giải pháp


Để khắc phục sự cố này, chạy dòng lệnh sau đây:

aspnet_regiis.exe /iru

Aspnet_regiis.exe tập tin có trong các vị trí sau:

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

%windir%\Microsoft.NET\Framework64\v4.0.30319 (trên một máy tính 64-bit)