Подтвердить что ты не робот

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

Я запускаю aspnet_regiis.exe, но я получаю такую ​​же ошибку:

Не удалось загрузить тип 'System.ServiceModel.Activation.HttpModule из сборка 'System.ServiceModel, Version = 3.0.0.0, Culture = нейтральная, PublicKeyToken = b77a5c561934e089. Описание: Необработанное исключение произошел во время выполнения текущего веб-запроса. пожалуйста просмотрите трассировку стека для получения дополнительной информации об ошибке и он возник из кода. Сведения об исключении: System.TypeLoadException: не удалось загрузить тип 'System.ServiceModel.Activation.HttpModule из сборки 'System.ServiceModel, Version = 3.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 '.

4b9b3361

Ответ 1

Если вы используете Windows 8, этот метод не будет работать. Microsoft не позволит вам запустить эту команду, сообщив вам следующее:

Эта опция не поддерживается в этой версии операционной системы. Вместо этого администраторы должны установить/удалить ASP.NET 4.5 с помощью IIS8 с помощью диалогового окна "Включение/выключение Windows-функций", инструмента управления диспетчером сервера или инструмента командной строки dis.exe.

Причины этого по этой ссылке: http://support.microsoft.com/kb/2736284.

Решение, которое работало для меня, размещено по этой ссылке, на ответ Neha: Ошибка System.ServiceModel.Activation.HttpModule

Всюду проблема этого решения упоминалась как перерегистрация aspNet с помощью aspnet_regiis.exe. Но это не сработало для меня.

     

Хотя это правильное решение (как объяснено здесь красиво)

     

но он не работал с Windows 8.

     

Для Windows 8 вам нужны функции Windows и включите все в разделе ".Net Framework 3.5" и ".Net Framework 4.5 Advanced Services".

     

Спасибо Нехе

Ответ 2

Я получил ту же ошибку после обновления IIS-сервера до .NET 4.5.1 (ранее был установлен .NET 4.0). В моем случае запуск aspnet_regiis с параметром "-iru" исправил проблему, т.е.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -iru

Примечание. на 64-битной системе вы должны использовать

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -iru

Примечания:

  • .NET 4.0 и выше (например, 4.5.1) все устанавливает в v.4.0.30319, это изменилось по сравнению с более ранними версиями (вы не найдете папку v4.5). Чтобы получить установленные версии платформы .NET, см. этот.

  • Причина этой ошибки описана здесь. Если вы хотите проверить вручную, я приводят следующее из этой статьи:

"Эта проблема возникает из-за того, что файл Applicationhost.config для службы активации Windows (WAS) имеет следующий раздел, и этот раздел несовместим с .NET Framework 4.0:

<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" />

Примечание. Вы можете найти файл Applicationhost.config в следующем месте: %windir%\system32\inetsrv\config "

Ответ 3

Кажется, что ASP.NET 4.0 неправильно зарегистрирован в IIS. Не могли бы вы попробовать перерегистрировать asp.net с помощью IIS? Вы можете попробовать как для 2.0, так и для 4.0, чтобы убедиться, что это сделано для всех версий .NET.

Используйте следующие команды для обеих версий asp.net для регистрации asp.net с помощью IIS

aspnet_regiis -i

Это расположено в обеих папках версии .NET framework.

C:\Windows\Microsoft.NET\Framework\v4.0.30319 а также C:\Windows\Microsoft.NET\Framework\v2.0.50727

Ответ 4

Перейдите в файл applicationhost.config в следующем каталоге: C:\Windows\system32\Inetsrv\CONFIG

Будет определен следующий раздел:

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

Вышеприведенное определение несовместимо с .NET framework 4.0, вы можете решить эту проблему, заменив приведенный выше раздел следующим образом:

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

Ответ 5

Чтобы устранить эту проблему, запустите следующую командную строку:

  • aspnet_regiis.exe/iru Файл Aspnet_regiis.exe можно найти в одном в следующих местах: % Windir%\Microsoft.NET\Framework\v4.0.30319 % windir%\Microsoft.NET\Framework64\v4.0.30319 (на 64-разрядном компьютере)

Ответ 6

Чтобы устранить эту проблему, запустите следующую командную строку:

  • Закройте приложение
  • в файле проекта (веб-приложение) измените виртуальный каталог
  • Теперь откройте файл проекта

Он будет работать определенно.

Ответ 7

В Windows 2012 работало:

По какой-то причине я не знаю, что пул приложений по умолчанию был настроен на использование 4.0:

Свойства пула приложений

но он не был правильно отражен в c:\windows\system32\inetesrv\config\applicationhost.config:

<add name="DefaultAppPool" enable32BitAppOnWin64="true" />

Мне пришлось снова установить его на 2.0 и затем на 4.0, а затем файл конфигурации был в порядке и ошибка была отменена:

<add name="DefaultAppPool" enable32BitAppOnWin64="true" managedRuntimeVersion="v4.0" />