Раздел конфигурации 'system.web.extensions' не может быть прочитан, поскольку в нем отсутствует объявление раздела (происходит с определенной веткой кода) - PullRequest
0 голосов
/ 30 мая 2018

Я заметил, что у одного из веб-приложений, с которыми я работаю ежедневно, были проблемы, запущенные ранее сегодня.Код компилируется нормально, и когда приложение запускается, я получаю HTTP-ответ 500.19 - Внутренняя ошибка сервера.

Detailed Error Information:

Module     IIS Web Core
Notification       Unknown
Handler    Not yet determined
Error Code     0x80070032
Config Error       The configuration section 'system.web.extensions' cannot be read because it is missing a section declaration
Config File    \\?\C:\TFS\Source Control\ManagementSystem\Prod\MS\App\web.config
Requested URL      http://localhost:40095/Ship/AddEditOrder.aspx
Physical Path      
Logon Method       Not yet determined
Logon User     Not yet determined
Request Tracing Directory      C:\Users\{User}\Documents\IISExpress\TraceLogFiles\

Ниже этого я вижу следующее:

Дополнительная информация:

Эта ошибка возникает, когда возникает проблема с чтением файла конфигурации для веб-сервера или веб-приложения.В некоторых случаях журналы событий могут содержать больше информации о том, что вызвало эту ошибку.

Если вы видите текст «Определен раздел« system.web.extensions / scripting / scriptResourceHandler », дубликат», эта ошибка связана с тем, что вы запускаете приложение на основе .NET Framework 3.5 в .NET Framework4. Если вы используете WebMatrix, чтобы решить эту проблему, перейдите на узел «Настройки», чтобы установить для .NET Framework версию «.NET 2».Вы также можете удалить дополнительные разделы из файла web.config.

Это похоже на проблему с IIS, и я проверил предлагаемые решения для этой проблемы следующим образом:

Последняя статья выглядела многообещающе, но я не смог найти никаких следов приложения, которое пытался запустить.

1 Ответ

0 голосов
/ 31 мая 2018

Я наконец-то решил эту проблему!

Сообщение немного вводит в заблуждение, но после соединения точек с некоторыми из этих статей я пришел к следующему решению.Похоже, что мое локальное решение сохранило свои собственные настройки IIS для этого конкретного «сайта» до до нашего обновления .Net Framework с 3.5 до 4.0.Другими словами, у записи IIS было устаревшее объявление структуры пула приложений.

Во многих из этих статей упоминается необходимость изменения настроек IIS Express, которые обычно указывают на каталог пользовательских папок, такой как

C: \ Users \ Пользователь \ Documents \ IISExpress \ config \ applicationhost.config

Однако, как я уже упоминал в своем первоначальном посте, здесь не было никаких остатков ни одного из моих проектов.

Я продолжал копать и обнаружил, что само решение также сохраняет локальную копию этих настроек!Вы сможете найти их рядом с вашим локальным Project Solution в папке ". Vs" !

Пример:

C: \ TFS \ Source Control \ WMS \ Prod \ WMS.vs \ config \ applicationhost.config

Оттуда я нашел свой сайт, у которого были проблемы

<site name="WHSMGMTApp" id="3">
                <application path="/" applicationPool="Clr2IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="C:\TFS\Source Control\WMS\Prod\WMS\WHSMGMTApp" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:40095:localhost" />
                </bindings>
            </site>

Я перешел к узлу пула приложений для своего сайта и обнаружил, что он все еще был на .Net версии 2.0, но он должен был быть 4.0.

Найдите узел «Пулы приложений» и найдите свой пул приложений

В моем случае это было Clr2IntegratedAppPool

   <applicationPools> 
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
            </applicationPools>

Я изменил managedRuntimeVersion с "v2.0" на "v4.0" и бум, это сработало!

Похоже, это очень нишевый сценарий, когда вы обновили .Net Framework в рамках решения, и у вас уже есть запись Local IIS Express для определенной ветви кода.(Это объясняет, почему моя ветвь QA работала, а не моя ветвь Prod, потому что они имеют отдельные записи в файле .config)

Любое понимание Почему visual studioнужна его собственная версия .config приветствуется!

...