Ошибка System.ServiceModel.Activation.HttpModule - PullRequest
7 голосов
/ 07 декабря 2010

в чем причина этой ошибки в строке ниже?

<system.web>
    <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="fa-IR" uiCulture="fa-IR" />
    <compilation targetFramework="4.0" debug="true">
      <assemblies> <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral,  PublicKeyToken=b77a5c561934e089" />

Ответы [ 7 ]

33 голосов
/ 20 марта 2013

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

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

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

Для Windows 8 вам необходимо использовать функции Windows и включить все в «.Net Framework 3.5» и «.Net Framework 4.5 Advanced Services».

Спасибо Неху

22 голосов
/ 19 августа 2011

Это происходит, когда вы устанавливаете .Net 4 перед включением IIS, или если вы регистрируете WCF после регистрации .Net 4. В любом случае ваши пулы приложений будут работать в .Net 2.0 (что является версией CLR, необходимой для .Net 3если вы зарегистрировали WCF, который устанавливает ASP.Net 3.5, или по умолчанию, если вы установили IIS после .Net 4)).

В Интернете есть много ссылок на это, например блоги MSDN: http://blogs.msdn.com/b/webtopics/archive/2010/04/28/system-typeloadexception-for-system-servicemodel-activation-httpmodule-in-asp-net-4.aspx

Исправление заключается в перерегистрации ASP.Net 4 из правильной (32 или 64-битной) папки Framework (Framework64 на 64-битном сервере) с использованием инструмента aspnet_regiis.exe, например,

aspnet_regiis.exe -iru

7 голосов
/ 12 февраля 2014

Для Windows 8 вам необходимо использовать функции Windows и включить все под .Net Framework 3.5 и .Net Framework 4.5 Advanced Services -> Enable Everything

2 голосов
/ 27 марта 2015

У меня была эта проблема на сервере, управляемом одним из наших клиентов.У меня не было доступа для запуска инструмента aspnet_regiis.exe.В качестве обходного пути я сделал следующее:

  1. Я удалил aspNetCompatibilityEnabled="true" из тега <serviceHostingEnvironment> в файле web.config
  2. , удалил [AspNetCompatibilityRequirements] из файла webservice.cs

К сожалению, это означает, что, например, HttpContext.Current становится null, я мог бы исправить свой веб-сервис, переписав все мои HttpContext.Current.Server.MapPath звонки на System.Web.Hosting.HostingEnvironment.MapPath

Надеюсь, это кому-нибудь поможет.

2 голосов
/ 22 апреля 2013

Для Windows 8 вышеуказанная конфигурация в Панели управления-> Программы-> Функции Windows включает / отключает все функции в «.net Framework3.5» и «Advanced Services 4.5 .net Framework 4.5».

Спасибо, Madhavi.B

0 голосов
/ 13 мая 2015
appcmd.exe set config -section:system.webServer/modules /[name='ServiceModel'].preCondition:"managedHandler,runtimeVersionv2.0" /commit:apphost

работал для меня

0 голосов
/ 09 мая 2013

Эта проблема возникла у нас сразу после того, как мы установили Windows Management Framework 3.0 / PowerShell 3.0 sp1 (KB2506143) на Windows Server 2008 R2 x64.Затем Центр обновления Windows также сразу установил KB2736422, KB2756921 и KB2656411.

Нашим решением было сначала удалить KB2506143 (и три обновления, которые сопровождали это), а затем запустить aspnet_regiis.exe -iru, как предложено в ответе Ed209 выше,Оба шага были необходимы для решения проблемы.Спасибо, Ed209.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...