Не вдалося завантажити тип 'System.ServiceModel.Activation.HttpModule' зі збірки 'System.ServiceModel


91

Я запускаю свій веб-проект у IIS.

Це додаток 4.0 Framework.

У мене є Service.svc, і ця помилка з’являється під час запуску програми.

"Не вдалося завантажити тип 'System.ServiceModel.Activation.HttpModule' зі збірки 'System.ServiceModel, Версія = 3.0.0.0, Культура = нейтральна, PublicKeyToken = b77a5c561934e089'"

Я спробував це -> aspnet_regiis.exe -iru, яке я знайшов на багатьох форумах, і це не вирішило моєї проблеми.

Хтось знає інший метод?

Відповіді:


159

Спробуйте

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

Коли кілька версій .NET Framework виконуються паралельно на одному комп'ютері, версія ASP.NET ISAPI, зіставлена ​​з програмою ASP.NET, визначає, яка версія загальномовної середовища виконання (CLR) використовується для програми.

Наведена вище команда встановить версію ASP.NET, яка пов'язана з Aspnet_regiis.exe, і реєструє лише ASP.NET у IIS.

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


1
також ми можемо користуватися CMD: ввевши адресу, cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319, а потім встановити його за допомогою команди: aspnet_regiis.exe -iru, далі було б краще перезапустити ISS за допомогою iisreset
Harry Sarshogh

2
Це все ще виявляється корисним сьогодні. Я сподівався б, що зараз MS це виправила б. У моєму випадку ми вже маємо запущений додаток IIS, що використовує фреймворк ASP.net 4.0. Хоча ми не зовсім впевнені, що робив замовник, окрім як оновити до 4.5.1 та купу інших оновлень, стало необхідним повторно запустити цю команду, чого наші інженери служби підтримки не думали, бо їм не доводилося робити це протягом деякого часу.
ebol2000

дякую за відповідь. це, однак, у мене не спрацювало. але увімкнення всього під '.Net Framework 3.5' та '.Net Framework 4.5' у функціях Windows (як зазначено у відповідях нижче) зробило трюк.
бар Ozgur,

У мене є Windows Server 2008 x64 R2, і він працював нормально, але через місяць я отримав цю помилку, знайшов цю публікацію та запустив цю команду на своєму сервері, і це вирішило проблему. Я ніколи не встановлюю і не оновлюю що-небудь на своєму сервері, тепер питання полягає в тому, чому це сталося ?, це нормально чи це тип хакерства або щось подібне?
motevalizadeh

1
Для мене це працює, лише якщо я бігаю aspnet_regiis.exe -iruза версії v4.0.XXXXX І v2.0.XXXXX !
1_bug

51

На моїй машині встановлена ​​Windows 8, і інструмент aspnet_regiis.exe у мене теж не працював.

Рішення, яке працювало для мене, розміщено за цим посиланням, на відповідь Neha: Помилка System.ServiceModel.Activation.HttpModule

Всюди проблема цього рішення була згадана як перереєстрація aspNet за допомогою aspnet_regiis.exe. Але це не спрацювало для мене.

Хоча це дійсне рішення (як це красиво пояснено тут)

але це не працювало з Windows 8.

Для Windows 8 потрібно встановити функції Windows і ввімкнути все в ".Net Framework 3.5" та ".Net Framework 4.5 Advanced Services".

Дякую Неха


4
Ця порада також необхідна для Windows Server 2012.
Кріс О,

Дякуємо, що передали це.
Відмінно

2
Вам не потрібно вмикати все, просто активація Http!
Marius Stănescu

Те, що сказав Маріус, просто активація Http під функціями .NET 3.5
C. Ridley

Ти та Неха врятували мої волоски, що залишились
Karim AG

36

Привіт Дякую за питання; Для вирішення: "Не вдалося завантажити тип 'System.ServiceModel.Activation.HttpModule' зі збірки 'System.ServiceModel, версія = 3.0.0.0, Культура = нейтральна, PublicKeyToken = b77a5c561934e089'"

У функціях Windows перевірте все на наявність .NET 4 Advanced Services та .NET 3.5

введіть тут опис зображення

Так само, як Ніколас Гаго, я спробував aspnet_regiis.exe -iru, але це не спрацювало. Після того, як функції були включені, тоді помилка жовтого екрану зникла. Дякую;


3
Це спрацювало для мене в Windows Server 2012 R2 - дякую!
NickG

Те саме для Windows 8. Дякую!
NikitaBaksalyar

Це виправило Win8 для мене. Дякую! +1
Дарбіо

1
Мені потрібно було лише увімкнути "Активацію HTTP", оскільки я розміщував служби в IIS. У мене це вийшло, дякую.
Dhanuka777

3
Працював у мене у вікнах 10.
Джастін,

10

Ви можете встановити ці функції на Windows Server 2012 за допомогою PowerShell, використовуючи такі команди:

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

Ви можете отримати список функцій за допомогою наступної команди:

Get-WindowsFeature | Format-Table

6

Гаразд, нарешті зрозумів.

Змініть цей рядок на %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" />

До

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

Якщо цього недостатньо

Додайте цей наступний рядок до Web.config

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

Зміна ApplicationHost.config спрацювала для мене з Windows Server 2016. Усі інші відповіді не допомогли. Дякую!
Тобіас

5

За допомогою вузла Особливості диспетчера серверів ви також можете видалити деякі підпункти в .NET Framework 3.5.1 Функції, які встановлюються активацією деяких інших ролей.

Наприклад, видалили функції активації WCF наступним чином, і наші веб-сайти повернулись:

  • [x] .NET Framework 3.5.1 Особливості
    • [x] .NET Framework 3.5.1
    • [] Активація WCF
      • [] Активація HTTP
      • [] Активація, що не стосується HTTP

Примітка: це не вимагало перезапуску для нас.




1

Я отримав цю помилку після того, як випадково опублікував один веб-сайт у каталозі іншого веб-сайту. Два веб-сайти мали різні версії .net. Що для мене це виправило, так це зміна пулу додатків. Для цього в менеджері IIS:

натисніть веб-сайт => Додаткові налаштування ... (праворуч) => клацніть праворуч від Пулу програм => повинна з'явитися кнопка з "..." => виберіть ".NET v4.5 Classic"

Якщо цей пул додатків не працює, спробуйте деякі з інших.


0

Ми використовуємо веб-службу вздовж веб-сайту, і коли ми публікуємо веб-сайт, він видає ту ж помилку. Ми виявили, що, перейшовши до IIS та видаливши ServiceModel з модулів та svc-Integrated з обробників відображень, помилка зникла.


0

Я запізнююсь, сподіваюся, це комусь допоможе .... Це відома проблема з IIS 8.0

Рішення полягає у видаленні модуля 3.x та обробника з менеджера IIS. Ви можете видалити їх на рівні програми або сайту, якщо хочете зберегти їх у applicationHost.config. Але я хотів видалити їх із applicationHost.config. виконайте такі дії:

У менеджері IIS клацніть вузол імені машини. У “Перегляді функцій” двічі клацніть “Модулі”. Знайдіть “ServiceModel” і видаліть його. Зображення 1 для вирішення помилки IIS 8: Не вдалося завантажити тип 'System.ServiceModel.Activation.HttpModule'

Поверніться до вузла імені машини «Перегляд особливостей», двічі клацніть «Налаштування обробників». Знайдіть “svc-Integrated” і видаліть його. Зображення 2 для вирішення помилки IIS 8: Не вдалося завантажити тип 'System.ServiceModel.Activation.HttpModule'


0

Можливо, ви змінили налаштування функцій IIS. Найпростіші кроки для вирішення, відкривши командний рядок із запуском від імені адміністратора (для Windows Server 2008), і запустіть команду C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe - iru це налаштує ASP.Net 4.0, після чого скиньте IIS за допомогою команди iisreset

Посилання: https://support.plesk.com/hc/en-us/articles/213392249-ASP-website-shows-error-Could-not-load-type-System-ServiceModel-Activation-HttpModule-from-assembly


-1

видалити модуль, який ідентифіковано в. Net повідомлення про помилку, 1 голос проти

На сервері Windows 2012. Перейдіть до ISS -> Модулі -> Видаліть ServiceModel3-0. (без номера працював у мене)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.