Не удалось загрузить тип '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 '.
Ответы
Ответ 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" />