Проблемы с веб-приложением (ошибки web.config) HTTP 500.19 с IIS7.5 и ASP.NET v2 - PullRequest
136 голосов
/ 27 ноября 2009

Это сводит всю команду с ума. Должна быть какая-то простая неправильно настроенная часть IIS или нашего веб-сервера, но каждый раз, когда мы пытаемся запустить веб-приложение ASP.NET на IIS 7.5, мы получаем следующую ошибку ...

Вот ошибка полностью:

HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration  
data for the page is invalid.

`Detailed Error Information` 
Module              IIS Web Core
Notification        Unknown
Handler             Not yet determined
Error Code          0x8007000d
Config Error
Config File         \\?\E:\wwwroot\web.config
Requested URL       http://localhost:80/Default.aspx
Physical Path 
Logon Method        Not yet determined
Logon User          Not yet determined
Config Source
   -1: 
    0: 

Машина работает Windows Server 2008 R2 . Мы разрабатываем наше веб-приложение с использованием Visual Studio 2008 .

Согласно Microsoft, код 8007000d означает, что в нашем файле web.config есть синтаксическая ошибка - за исключением того, что проект собирается и работает нормально локально. Просмотр web.config в XML Notepad также не вызывает никаких синтаксических ошибок. Я предполагаю, что с моей стороны это какая-то плохая конфигурация ...?

Кто-нибудь знает, где я могу найти дополнительную информацию об ошибке? Ничего не отображается в EventViewer, либо: (

Не уверен, что еще было бы полезно упомянуть ...

Помощь очень ценится. Спасибо!

ОБНОВЛЕНИЕ! - РАЗМЕЩЕННЫЙ ВЕБ-КОНФИГ НИЖЕ

Хорошо, так как я разместил исходный вопрос выше, я отследил точные строки в web.config , которые вызывали ошибку.

Вот строки (они появляются между <System.webServer> тегами) ...

    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </httpHandlers>

Примечание: если я удаляю строки между , то <httpHandlers> I ЕЩЕ ПОЛУЧАЕТ ошибку. Я буквально должен удалить <httpHandlers> (и строки между ними), чтобы прекратить получать вышеуказанную ошибку.

Как только я это сделаю, я получаю ошибку new 500.19. К счастью, на этот раз IIS фактически сообщает мне, какой бит web.config вызывает проблему ...

    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </handlers>

Глядя на эти строки, становится ясно, что проблема переместилась дальше в том же теге <system.webServer> в тег <handlers>.

Новая ошибка также более явная и, в частности, жалуется на то, что она не распознает атрибут «validate» (как видно в третьей строке выше). Удаление этого атрибута приводит к тому, что эта строка не имеет обязательного атрибута name. При добавлении этого атрибута возникает ошибка ASP.NET ...

Не удалось загрузить файл или сборку «System.Web.Extensions, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = f2cb5667dc123a56 'или одна из его зависимостей. Система не могу найти указанный файл.

Очевидно, я думаю, что эти новые ошибки только что возникли у меня при удалении тегов <httpHandlers> в первую очередь - они, очевидно, нужны приложению - поэтому остается вопрос: зачем эти в первую очередь теги выдают ошибку в IIS ???

Нужно ли что-то устанавливать в IIS, чтобы он работал с ними?

Еще раз спасибо за любую помощь.

Web.config

Вот неприятные моменты нашей сети. Конфиг ... Надеюсь, это поможет кому-то найти нашу проблему!

<system.Web>

<!-- stuff cut out -->

    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56" validate="false"/>
    </httpHandlers>
    <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </httpModules>
</system.web>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
        <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </modules>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </handlers>
</system.webServer>

Ответы [ 19 ]

2 голосов
/ 13 марта 2019

Эта прекрасная подробная ошибка все еще присутствует в 2019 году! Я просто хочу добавить, что если ваш web.config действителен и доступен, то, скорее всего, это проблема зависимостей .

Как упомянуто ФП, это был модуль AJAX, а другими, как правило, Rewrite. Просто следите в своем файле web.config, на какие модули и библиотеки ссылаются ваши теги, поскольку код ошибки 0x8007000d может составлять ЛЮБОЙ зависимости .

В моем случае я не осознавал, что комплект AspNetCore отсутствует и должен был быть установлен! Так счастлив, что нашел этот пост !!

2 голосов
/ 22 июля 2014

У меня была такая же ошибка. У меня был сайт IIS с .net Framework версии 2.0, но моему приложению требовался 4.0. Я изменил версию, и она работала.

Публикация в качестве напоминания, если у кого-то может быть такая же проблема.

2 голосов
/ 09 марта 2010

Это может быть или не быть связано .... Я начал с той же ошибки, упомянутой выше, начал гуглить, вносить изменения, получать новые ошибки, бесконечный цикл.

Изменение, которое привело меня к этой ошибке, связано с делегированием компонентов в IIS Manager в разделе «Управление» сервера. Извините, я не могу вспомнить, что я поменял, но поиск в Google может помочь.

Это привело меня к 1-й ошибке в совершенно новый поток других, совершенно бессмысленных. (Я получаю одну ошибку при работе в виртуальном каталоге, преобразование его в приложение приводит к другой ошибке, etec и т. Д.). Что в итоге решило эту серию ошибок: Диспетчер IIS, Пулы приложений, DefaultAppPool, Включить 32-разрядные приложения = True

Я запустил это приложение на 32-битной Windows XP Box, и теперь я запускаю его на 64-битной Windows 7.

Так что, надеюсь, это поможет кому-то еще.

2 голосов
/ 14 октября 2010

Прокомментируйте следующие строки в файле web.config.

<modules>
    <!--<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</modules>

<handlers>
    <remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
    <!--<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add name="ScriptResource" verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</handlers>

Это будет работать.

2 голосов
/ 19 апреля 2011

Мой IIS 7.5 не понимает тег в web.config В VS 2010 подчеркивается и этот тег. Проверьте ваш файл конфигурации точно, чтобы найти все подчеркнутые теги. Я помещаю это в комментарий, и ошибка исчезает.

1 голос
/ 08 ноября 2018

Убедитесь, что все функции IIS включены правильно.

  • Открыть Функции Windows (включить или отключить функции Windows).
  • Прокрутите вниз до Информационные службы Интернета

  • Откройте раскрывающийся список World Wide Web plus

  • Открыть Функции разработки приложений плюс поле с раскрывающимся списком
  • Вручную отметьте все последующие флажки, затем нажмите ОК

enter image description here

1 голос
/ 14 апреля 2016

Я получил эту ошибку, поместив тег <customErrors> внутри <system.webServer> вместо <system.web>, где он принадлежит. Под тэгом <customErrors> было небольшое замешательство, но я не сразу это заметил.

1 голос
/ 22 марта 2015

Windows 7

Попробуйте это,

запустить cmd от имени администратора.

Unistall all iis.

start /w pkgmgr.exe /uu:IIS-WebServerRole;WAS-WindowsActivationService

Переустановите iis и обычно это работает

Alain

1 голос
/ 03 июля 2012

У меня была такая же проблема в Windows 7.

Решение состояло в том, чтобы перейти к базовым настройкам> подключиться как> конкретный пользователь - и войти в систему как пользователь, вместо стандартного сквозного входа

Это исправило проблему для меня.

...