Раздел конфигурации 'system.web.extensions' не может быть прочитан, поскольку в нем отсутствует объявление раздела

Я получаю сообщение об ошибке (раздел конфигурации system.web.extensions не может быть прочитано, поскольку в нем отсутствует объявление раздела) при установке 32-разрядного компьютера с веб-приложением в Server 2008 с помощью .NET Framework 4.0. но это хорошо работает в 2008 году r2 64-битная машина.

Это моя информация о файле webconfig

<configuration>
<runtime>
    <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="2147483647"/>
      </webServices>
    </scripting>
  </system.web.extensions>
</configuration>

Есть идеи, чтобы избавиться от этой ошибки?

Примечание: я проверил все связанные записи в стеке над потоком, но для меня ничего не помогло

4 ответа

Решение

Проблема решена для меня после добавления следующего параметра конфигурации в мой файл webconfig

<configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>
  </configSections>

Мы можем сослаться на эту статью для получения дополнительной информации: http://www.morgantechspace.com/2013/11/The-configuration-section-system-web-extensions-cannot-be-read-because-it-is-missing-a-section-declaration.html

Попробуйте изменить время выполнения пула приложений с.net 2.0 на.net 4.0

У меня также была такая же проблема после обновления моей ОС с Windows Server 2003 до Windows Server 2008 R2, я просто изменил настройки пула приложений на.NetFramework 4.0.0, а также изменил классический режим на интегрированный режим... мои проблемы решены..

Вероятно, связанный вопрос: .NET использует неправильный 2.0 machine.config вместо 4.0. Я сталкивался с подобной проблемой... И решение для меня:

Не уверен, что это действительно причина / решение, но последнее, что я попробовал, это (в IIS Manager):

  1. Перейдите на сервер в правой панели (корневой узел)
  2. В списке функций откройте "Ограничения ISAPI и CGI"
  3. Есть 2 элемента с описаниями ASP.NET v4.0.30319 с ограничениями, установленными на Запретить
  4. Установите значение ограничения Разрешено

Это последнее, что я пробовал до того, как проблема исчезла.

Запишите установленную версию.netFramework v4... (пример v4.0.030319), которую вы установили. Отредактируйте пул приложений, чтобы исправить.NET Framework v4..

Удачи

-Satish

Для меня изменение версии .NET Framework пула приложений с v2.0 на v4.0 решило эту проблему.

Откройте IIS -> Выберите пулы приложений -> Выберите пул приложений из списка -> Из контекстного меню выберите Основные настройки... -> Изменить версию.NET Frame на v4.0

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

Я попробовал это, и это хорошо работает для меня. Может быть, полезно для кого-то.

Другие вопросы по тегам