Không thể tải loại 'System.ServiceModel.Activation.HttpModule' từ assembly 'System.ServiceModel


91

Tôi đang chạy Dự án Web của mình trong IIS.

Nó là một ứng dụng khung 4.0.

Tôi có Service.svc và tôi gặp lỗi này khi chạy Ứng dụng của mình.

"Không thể tải loại 'System.ServiceModel.Activation.HttpModule' từ assembly 'System.ServiceModel, Phiên bản = 3.0.0.0, Văn hóa = trung lập, PublicKeyToken = b77a5c561934e089'"

Tôi đã thử cái này -> aspnet_regiis.exe -iru mà tôi đã tìm thấy trong rất nhiều diễn đàn và nó không giải quyết được vấn đề của tôi.

Có ai biết phương pháp khác không?

Câu trả lời:


159

Hãy thử với

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

Khi nhiều phiên bản .NET Framework đang thực thi song song trên một máy tính, phiên bản ASP.NET ISAPI được ánh xạ tới ứng dụng ASP.NET xác định phiên bản nào của thời gian chạy ngôn ngữ chung (CLR) được sử dụng cho ứng dụng.

Lệnh trên sẽ Cài đặt phiên bản ASP.NET được liên kết với Aspnet_regiis.exe và chỉ đăng ký ASP.NET trong IIS.

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


1
Ngoài ra, chúng ta có thể sử dụng CMD: bằng cách nhập địa chỉ, cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 và sau đó cài đặt nó bằng lệnh: aspnet_regiis.exe -iru, tiếp theo tốt hơn là khởi động lại ISS bằng iisreset
Harry Sarshogh

2
Điều này vẫn tỏ ra hữu ích cho đến ngày nay. Tôi đã hy vọng bây giờ MS sẽ sửa được điều này. Trong trường hợp của tôi, chúng tôi đã có một ứng dụng IIS đang chạy sử dụng khung ASP.net 4.0. Mặc dù không chắc chắn chính xác khách hàng đã làm gì ngoài việc nâng cấp lên 4.5.1 và một loạt các bản cập nhật khác, nhưng cần phải chạy lại lệnh này, điều mà các kỹ sư hỗ trợ của chúng tôi không nghĩ đến vì họ không phải làm nó trong một thời gian.
ebol2000

cảm ơn vì câu trả lời. điều này, tuy nhiên, không làm việc cho tôi. nhưng việc kích hoạt mọi thứ theo '.Net Framework 3.5' và '.Net Framework 4.5' trong các tính năng của windows (như được đề cập trong các câu trả lời bên dưới) đã thực hiện thủ thuật.
Ozgur Bar

Tôi có máy chủ windows 2008 x64 R2 và nó hoạt động tốt nhưng sau một tháng, tôi gặp lỗi này, tôi đã tìm thấy bài đăng này và chạy lệnh này trên máy chủ của mình và nó đã khắc phục được sự cố của tôi. Tôi không bao giờ cài đặt hoặc cập nhật bất kỳ thứ gì trên máy chủ của mình, bây giờ câu hỏi đặt ra là tại sao nó lại xảy ra ?, nó là bình thường hay đó là một loại hack hoặc một cái gì đó tương tự?
motevalizadeh

1
Nó làm việc cho tôi chỉ khi tôi chạy aspnet_regiis.exe -irucho v4.0.XXXXX v2.0.XXXXX phiên bản!
1_bug

51

Tôi đã cài đặt Windows 8 trên máy của mình và công cụ aspnet_regiis.exe cũng không hoạt động với tôi.

Giải pháp phù hợp với tôi được đăng trên liên kết này, trên câu trả lời của Neha: Lỗi System.ServiceModel.Activation.HttpModule

Ở mọi nơi, vấn đề đối với giải pháp này đã được đề cập là đăng ký lại aspNet bằng cách sử dụng aspnet_regiis.exe. Nhưng điều này đã không làm việc cho tôi.

Mặc dù đây là một giải pháp hợp lệ (như được giải thích rõ ràng ở đây)

nhưng nó không hoạt động với Windows 8.

Đối với Windows 8, bạn cần có các tính năng của Windows và kích hoạt mọi thứ trong ".Net Framework 3.5" và ".Net Framework 4.5 Advanced Services".

Cảm ơn Neha


4
Lời khuyên này cũng cần thiết cho Windows Server 2012.
Chris O

Cảm ơn vì đã vượt qua điều này. Đã làm việc rất tốt để sửa lỗi này trên Win 8.1
JJMpls Ngày

2
Bạn không cần phải kích hoạt mọi thứ, chỉ cần Kích hoạt Http!
Marius Stănescu

Có gì Marius nói, chỉ Http Hoạt dưới NET 3.5 Các tính năng
C. Ridley

Bạn & Neha lưu lông còn lại của mình
Karim AG

36

Xin chào Cảm ơn vì câu hỏi; Để giải quyết: "Không thể tải loại 'System.ServiceModel.Activation.HttpModule' từ assembly 'System.ServiceModel, Phiên bản = 3.0.0.0, Văn hóa = trung lập, PublicKeyToken = b77a5c561934e089'"

Trong Các tính năng của Windows, hãy kiểm tra tất cả cho .NET 4 Dịch vụ nâng cao & .NET 3.5

nhập mô tả hình ảnh ở đây

Cũng giống như Nicolas Gago, tôi đã thử aspnet_regiis.exe -iru nhưng nó không hoạt động. Sau khi các tính năng được bật thì lỗi màn hình vàng không còn nữa. Cảm ơn;


3
Điều này đã làm việc cho tôi trong Windows Server 2012 R2 - cảm ơn!
NickG

Tương tự cho Windows 8. Cảm ơn bạn!
NikitaBaksalyar

Điều này đã sửa Win8 cho tôi. Cảm ơn! +1
Darbio

1
Tôi chỉ phải bật "Kích hoạt Http" khi tôi lưu trữ các dịch vụ trong IIS. Nó làm việc cho tôi, cảm ơn.
Dhanuka777

3
Làm việc cho tôi trong windows 10.
Justin

10

Bạn có thể cài đặt các tính năng này trên windows server 2012 với powershell bằng các lệnh sau:

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

Bạn có thể nhận được danh sách các tính năng bằng lệnh sau:

Get-WindowsFeature | Format-Table

6

Ok, cuối cùng đã hiểu.

Thay đổi dòng này trong %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" />

Đến

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

Nếu điều này là không đủ

Thêm dòng sau vào Web.config

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

Thay đổi ApplicationHost.config phù hợp với tôi với Windows Server 2016. Tất cả các câu trả lời khác không giúp được gì. Cảm ơn!
Tobias

5

Từ nút Tính năng của Trình quản lý máy chủ, bạn cũng có thể xóa một số mục con trong Tính năng .NET Framework 3.5.1 được cài đặt bằng cách kích hoạt một số vai trò khác.

Ví dụ: đã xóa Tính năng kích hoạt WCF như sau và các trang web của chúng tôi đã hoạt động trở lại:

  • [x] Tính năng .NET Framework 3.5.1
    • [x] .NET Framework 3.5.1
    • [] Kích hoạt WCF
      • [] Kích hoạt HTTP
      • [] Kích hoạt không phải HTTP

Lưu ý: điều này không yêu cầu khởi động lại đối với chúng tôi.




1

Tôi gặp lỗi này sau khi vô tình xuất bản một trang web vào thư mục của một trang web khác. Hai trang web có các phiên bản .net khác nhau. Điều đã sửa nó cho tôi là thay đổi nhóm ứng dụng. Để làm điều đó, trong trình quản lý IIS:

nhấp vào trang web => Cài đặt nâng cao ... (bên phải) => nhấp vào bên phải Nhóm ứng dụng => xuất hiện nút có "..." => chọn ".NET v4.5 Classic"

Nếu nhóm ứng dụng đó không hoạt động, hãy thử một số ứng dụng khác.


0

Chúng tôi đang sử dụng một dịch vụ web cùng với một trang web và khi chúng tôi xuất bản trang web, nó sẽ trả về cùng một lỗi này. Chúng tôi phát hiện ra rằng bằng cách đi vào IIS và xóa ServiceModel khỏi Mô-đun và svc-Tích hợp khỏi Ánh xạ xử lý, lỗi đã biến mất.


0

Tôi đến muộn, hy vọng nó sẽ giúp ai đó .... Đây là một vấn đề đã biết với IIS 8.0

Giải pháp là xóa mô-đun 3.x và trình xử lý khỏi trình quản lý IIS. Bạn có thể xóa chúng ở cấp ứng dụng hoặc trang nếu bạn muốn giữ chúng trong applicationHost.config. Nhưng tôi muốn xóa chúng khỏi applicationHost.config. thực hiện các bước sau:

Trong trình quản lý IIS, bấm vào nút tên máy. Trong “Chế độ xem tính năng”, nhấp đúp vào “Mô-đun”. Tìm “ServiceModel” và xóa nó. Hình ảnh 1 để giải quyết Lỗi IIS 8: Không thể tải loại 'System.ServiceModel.Activation.HttpModule'

Quay lại “Chế độ xem tính năng” của nút tên máy, nhấp đúp vào “Ánh xạ xử lý”. Tìm "svc-Integrated" và xóa nó. Hình ảnh 2 để giải quyết Lỗi IIS 8: Không thể tải loại 'System.ServiceModel.Activation.HttpModule'


0

Bạn có thể đã thay đổi cài đặt tính năng IIS. Các bước giải quyết dễ dàng bằng cách mở dấu nhắc lệnh với quyền chạy với tư cách quản trị viên (Đối với Windows Server 2008) và chạy lệnh C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe - iru này sẽ thiết lập ASP.Net 4.0, Sau đó Đặt lại IIS bằng lệnh iisreset

Tài liệu tham khảo: https://support.plesk.com/hc/en-us/articles/213392249-ASP-website-shows-error-Could-not-load-type-System-ServiceModel-Activation-HttpModule-from-assembly


-1

xóa mô-đun được xác định trong thông báo lỗi .Net, 1 phiếu bầu xuống

Trong máy chủ Windows 2012. Đi tới ISS -> Mô-đun -> Loại bỏ ServiceModel3-0. (không có số hiệu quả với tôi)


-1

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.