Tidak dapat memuat jenis 'System.ServiceModel.Activation.HttpModule' dari rakitan 'System.ServiceModel

91

Saya menjalankan Proyek Web saya di IIS.

Ini adalah APP Kerangka 4.0.

Saya memiliki Service.svc dan saya mendapatkan kesalahan ini saat menjalankan Aplikasi saya.

"Tidak dapat memuat jenis 'System.ServiceModel.Activation.HttpModule' dari rakitan 'System.ServiceModel, Versi = 3.0.0.0, Budaya = netral, PublicKeyToken = b77a5c561934e089'"

Saya mencoba ini -> aspnet_regiis.exe -iru yang saya temukan di banyak forum dan itu tidak menyelesaikan masalah saya.

Apakah ada yang tahu metode lain?

Nicolas Gago
sumber

Jawaban:

160

Coba dengan

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

Ketika beberapa versi .NET Framework sedang mengeksekusi berdampingan di satu komputer, versi ASP.NET ISAPI yang dipetakan ke aplikasi ASP.NET menentukan versi mana dari runtime bahasa umum (CLR) yang digunakan untuk aplikasi.

Perintah di atas akan menginstal versi ASP.NET yang terkait dengan Aspnet_regiis.exe dan hanya mendaftarkan ASP.NET di IIS.

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

Kishan Zunjare
sumber
1
juga kita dapat menggunakan CMD: dengan memasukkan alamat, cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 dan kemudian menginstalnya dengan: perintah aspnet_regiis.exe -iru, selanjutnya akan lebih baik untuk merestart ISS dengan iisreset
Harry Sarshogh
2
Ini masih terbukti bermanfaat hari ini. Saya berharap sekarang MS akan memperbaikinya. Dalam kasus saya, kami sudah memiliki aplikasi IIS yang berjalan menggunakan kerangka kerja ASP.net 4.0. Meskipun tidak yakin apa yang dilakukan pelanggan selain meningkatkan ke 4.5.1 dan banyak pembaruan lainnya, perintah ini harus dijalankan ulang, sesuatu yang tidak terpikirkan oleh teknisi dukungan kami karena mereka tidak perlu melakukannya. itu untuk beberapa waktu.
ebol2000
Terima kasih atas jawabannya. ini, bagaimanapun, tidak berhasil untuk saya. tetapi mengaktifkan semua yang ada di bawah '.Net Framework 3.5' dan '.Net Framework 4.5' di fitur windows (seperti yang disebutkan di jawaban di bawah ini) berhasil.
Ozgur Bar
Saya memiliki server windows 2008 x64 R2 dan itu berfungsi dengan baik tetapi setelah satu bulan, saya mendapat kesalahan ini, saya menemukan posting ini dan menjalankan perintah ini di server saya dan itu memperbaiki masalah saya. Saya tidak pernah menginstal atau memperbarui apa pun di server saya, sekarang pertanyaannya adalah mengapa itu terjadi ?, apakah itu normal atau itu jenis peretasan atau semacamnya?
motevalizadeh
1
Ini bekerja untuk saya hanya jika saya menjalankan aspnet_regiis.exe -iruuntuk v4.0.XXXXX DAN v2.0.XXXXX versi!
1_bug
51

Saya telah menginstal Windows 8 di komputer saya, dan alat aspnet_regiis.exe juga tidak berfungsi untuk saya.

Solusi yang berhasil untuk saya diposting di tautan ini, pada jawaban oleh Neha: Kesalahan System.ServiceModel.Activation.HttpModule

Di mana-mana masalah untuk solusi ini disebutkan sebagai mendaftarkan ulang aspNet dengan menggunakan aspnet_regiis.exe. Tapi ini tidak berhasil untuk saya.

Padahal ini adalah solusi yang valid (seperti dijelaskan dengan indah di sini)

tetapi tidak bekerja dengan Windows 8.

Untuk Windows 8 Anda memerlukan fitur Windows dan mengaktifkan semua yang ada di bawah ".Net Framework 3.5" dan ".Net Framework 4.5 Advanced Services".

Terima kasih Neha

scubaFun
sumber
4
Saran ini juga diperlukan untuk Windows Server 2012.
Chris O
Terima kasih telah menyampaikan ini. Bekerja dengan baik untuk memperbaiki ini pada Win 8.1
JJMpls
2
Anda tidak perlu mengaktifkan semuanya, cukup Aktivasi Http!
Marius Stănescu
Apa yang Marius katakan, hanya Aktivasi Http di bawah .NET 3.5 Features
C. Ridley
Anda & Neha menyelamatkan rambut saya yang tersisa
Karim AG
36

Halo Terima kasih atas pertanyaannya; Untuk mengatasi: "Tidak dapat memuat jenis 'System.ServiceModel.Activation.HttpModule' dari rakitan 'System.ServiceModel, Versi = 3.0.0.0, Budaya = netral, PublicKeyToken = b77a5c561934e089'"

Di Fitur Windows, periksa semua untuk .NET 4 Advanced Services & .NET 3.5

masukkan deskripsi gambar di sini

Sama seperti Nicolas Gago saya mencoba aspnet_regiis.exe -iru tetapi tidak berhasil. Setelah fitur menyala maka kesalahan layar kuning itu hilang. Terima kasih;

Catto
sumber
3
Ini berhasil untuk saya di Windows Server 2012 R2 - terima kasih!
NickG
Sama untuk Windows 8. Terima kasih!
NikitaBaksalyar
Ini memperbaiki Win8 untuk saya. Terima kasih! +1
Darbio
1
Saya hanya perlu mengaktifkan "Aktivasi Http" karena saya meng-host layanan di IIS. Ini berhasil untuk saya, terima kasih.
Dhanuka777
3
Bekerja untuk saya di windows 10.
Justin
10

Anda dapat menginstal fitur ini di windows server 2012 dengan PowerShell menggunakan perintah berikut:

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

Anda bisa mendapatkan daftar fitur dengan perintah berikut:

Get-WindowsFeature | Format-Table
Preben Huybrechts
sumber
6

Oke, akhirnya mengerti.

Ubah baris ini %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" />

Untuk

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

Jika ini tidak cukup

Tambahkan baris berikut ini ke Web.config

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Nicolas Gago
sumber
Mengubah ApplicationHost.config berfungsi untuk saya dengan Windows Server 2016. Semua jawaban lainnya tidak membantu. Terima kasih!
Tobias
5

Dari node Fitur Server Manager, Anda juga dapat menghapus beberapa sub-item di bawah .NETFramework 3.5.1 Fitur yang diinstal dengan aktivasi beberapa peran lainnya.

Misalnya, menghapus Fitur Aktivasi WCF sebagai berikut dan situs web kami kembali:

  • [x] .NETFramework 3.5.1 Fitur
    • [x] .NET Framework 3.5.1
    • [] Aktivasi WCF
      • [] Aktivasi HTTP
      • [] Aktivasi Non-HTTP

Catatan: ini tidak membutuhkan restart untuk kami.

fordareh
sumber
4

Di server Windows 2012. Buka ISS -> Modul -> Hapus ServiceModel3-0.

NikolasKraschowetz
sumber
1

Saya mendapat kesalahan ini setelah saya secara tidak sengaja menerbitkan satu situs web ke direktori situs web lain. Kedua situs web tersebut memiliki versi .net yang berbeda. Yang memperbaikinya bagi saya adalah mengubah kumpulan aplikasi. Untuk melakukan itu, di manajer IIS:

klik website => Advanced Settings ... (di sebelah kanan) => klik di sebelah kanan Application Pool => tombol dengan "..." akan muncul => pilih ".NET v4.5 Classic"

Jika kumpulan aplikasi itu tidak berfungsi, coba beberapa yang lain.

quickq
sumber
0

Kami menggunakan layanan web di samping situs web dan ketika kami menerbitkan situs web itu mengembalikan kesalahan ini. Kami menemukan bahwa dengan masuk ke IIS dan menghapus ServiceModel dari Modules dan svc-Integrated dari Handler Mappings kesalahan hilang.

Mike Donner
sumber
0

Saya terlambat, semoga ini akan membantu seseorang .... Ini adalah masalah yang diketahui dengan IIS 8.0

Solusinya adalah dengan menghapus modul 3.x dan handler dari manajer IIS. Anda dapat menghapusnya di tingkat aplikasi atau situs jika Anda ingin menyimpannya di applicationHost.config. Tapi saya ingin menghapusnya dari applicationHost.config. lakukan langkah-langkah berikut:

Di manajer IIS, klik node nama mesin. Dalam "Tampilan Fitur", klik dua kali "Modul". Temukan "ServiceModel" dan hapus. Gambar 1 untuk Memecahkan Kesalahan IIS 8: Tidak dapat memuat jenis 'System.ServiceModel.Activation.HttpModule'

Kembali ke "Tampilan Fitur" node nama mesin, klik dua kali "Pemetaan Penangan". Temukan "svc-Integrated" dan hapus. Gambar 2 untuk Memecahkan Kesalahan IIS 8: Tidak dapat memuat jenis 'System.ServiceModel.Activation.HttpModule'

Taran
sumber
0

Anda mungkin mengubah pengaturan fitur IIS. Langkah mudah untuk mengatasinya dengan membuka command prompt dengan menjalankan sebagai administrator (Untuk Windows Server 2008) dan menjalankan perintah C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe - iru ini akan mengatur ASP.Net 4.0, Kemudian Reset IIS dengan perintah iisreset

Referensi: 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
sumber
-1

Hapus modul yang diidentifikasi dalam pesan kesalahan .Net, 1 suara turun

Di server Windows 2012. Buka ISS -> Modul -> Hapus ServiceModel3-0. (tanpa nomor bekerja untuk saya)

peter
sumber
-1

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

Mukesh Depani
sumber