Не удалось загрузить тип System.ServiceModel.Activation.HttpModule из сборки System.ServiceModel

91

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

Это приложение 4.0 Framework.

У меня есть Service.svc, и я получаю эту ошибку при запуске приложения.

«Не удалось загрузить тип System.ServiceModel.Activation.HttpModule из сборки System.ServiceModel, Version = 3.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089» »

Я пробовал это -> aspnet_regiis.exe -iru, который я нашел на многих форумах, и это не решило мою проблему.

Кто-нибудь знает другой метод?

Николас Гаго
источник

Ответы:

160

Попробуйте с

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
Гарри Саршох
2
Это все еще оказывается полезным сегодня. Я бы надеялся, что к настоящему времени MS исправит это. В моем случае у нас уже есть работающее приложение IIS, использующее платформу ASP.net 4.0. Хотя не совсем уверен, что сделал клиент, кроме обновления до 4.5.1 и кучи других обновлений, возникла необходимость повторно запустить эту команду, о чем наши инженеры службы поддержки не подумали, потому что им не приходилось делать это какое-то время.
ebol2000
Спасибо за ответ. это, однако, не сработало для меня. но включение всего под '.Net Framework 3.5' и '.Net Framework 4.5' в функциях Windows (как указано в ответах ниже) помогло.
Ozgur Bar
У меня есть сервер Windows 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 error

Везде упоминалась проблема этого решения как перерегистрация 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!
Мариус Стэнеску
Что сказал Мариус, просто активация Http с функциями .NET 3.5
К. Ридли,
Вы и Неха спасли мои оставшиеся волосы
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 06
То же самое для Windows 8. Спасибо!
NikitaBaksalyar
Это исправило Win8 для меня. Благодарность! +1
Дарбио
1
Мне нужно было только включить «Http-активацию», поскольку я размещал службы в IIS. У меня сработало, спасибо.
Dhanuka777 03
3
Работал у меня в windows 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

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

Fordareh
источник
4

В Windows server 2012. Перейдите в ISS -> Модули -> Удалите ServiceModel3-0.

Николас Крашовец
источник
1

Я получил эту ошибку после того, как случайно опубликовал один веб-сайт в каталоге другого веб-сайта. У этих двух сайтов были разные версии .net. Что исправило для меня, так это изменение пула приложений. Для этого в диспетчере IIS:

щелкните веб-сайт => Дополнительные настройки ... (справа) => щелкните справа от пула приложений => должна появиться кнопка с надписью «...» => выберите «.NET v4.5 Classic»

Если этот пул приложений не работает, попробуйте другие.

quickq
источник
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 server 2012. Перейдите в ISS -> Модули -> Удалите ServiceModel3-0. (без номера работал у меня)

Питер
источник
-1

начало-> Выполнить -> c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

Мукеш Депани
источник