Это сводит всю команду с ума. Должна быть какая-то простая неправильно настроенная часть 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>
я все еще получаю ошибку. Я буквально должен удалить <httpHandlers>
(и строки между ними), чтобы перестать получать вышеуказанную ошибку.
Однако, как только я это сделаю, я получаю новую ошибку 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» (как видно в третьей строке выше). Удаление этого атрибута заставляет жаловаться, что в той же строке нет обязательного атрибута «имя». Добавление этого атрибута вызывает ошибку 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>
источник
web.config
. Они начинаются с<!--
и заканчиваются-->
.Ответы:
У меня были именно эти симптомы, и моя проблема была похожа на проблему Питера. Настраивал существующий проект на новом сервере. Мой проект ссылался на модуль перезаписи URL IIS7, но он еще не был установлен на новом сервере. Установка установила мою проблему.
Вы можете использовать установщик веб-платформы Microsoft для его установки. Выполните его, выберите « Продукты» , в левом меню выберите « Сервер», найдите в списке URL Rewrite и установите его.
Или вы можете скачать его здесь .
источник
После борьбы с этим в течение дня на новой машине я наткнулся на следующие ссылки. Мне не хватало модулей перезаписи. Это исправило все.
http://forums.iis.net/t/1176834.aspx
http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/
источник
<rewrite>
теги, но у меня не было установлено urlrewrite. Я закомментировал<rewrite>
материал, и мой сайт скомпилирован и загружен сразу.Ага! Я победил эту проблему! Боже мой, это был зверь для кого-то вроде меня с ограниченным опытом IIS. Я действительно думал, что собирался потратить все выходные, исправляя это.
Вот решение для всех, кто когда-либо сталкивался с этой злой проблемой.
Первое, о чем следует знать: если вы надеетесь, что это ваше решение, убедитесь, что у вас одинаковый код ошибки ( 0x8007000d ) и источник конфигурации ( -1: 0:) . Если нет, то это не ваше решение.
Следующее, что нужно знать: AJAX неправильно установлен в вашем файле web.config!
Исправьте это, следуя этому руководству:
http://www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx
Затем установите расширения AJAX 1.0 на свой производственный сервер по этой ссылке:
Это оно!
источник
Та же проблема на сервере 2016, IIS 10, ошибка 500.19. Я установил модуль перенаправления, и он работал. Я не знаю, почему это не было включено по умолчанию.
https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads
Чтобы было ясно, похоже, что web.config из IIS 7 будет работать или предназначен для работы, но отсутствие этого модуля дает действительно странную и бесполезную ошибку. Googling ведет вас на страницу Microsoft, которая настаивает на том, что ваш сайт поврежден или ваш web.config поврежден. Ни то, ни другое, похоже, не так.
Эта бесполезная страница находится здесь: https://support.microsoft.com/en-us/kb/942055
источник
Возникла та же проблема, что и выше, тот же код ошибки и т. Д. Настройка локального веб-сайта в Windows 8. После долгих поисков выяснилось, что нам не хватает перезаписи URL. После загрузки все было хорошо. :)
источник
Я просто добавляю ответ, потому что я часами пытался решить те же симптомы (но другую проблему):
Возможная причина - библиотека x86 в 64-битном пуле приложений, решение состоит в том, чтобы включить 32-битные приложения в настройках пула приложений.
источник
Для меня перерегистрация asp.net для iis сделала свое дело. Надеюсь, это поможет кому-то еще.
источник
Подводя итог на основе ответов здесь и в других местах:
источник
Еще один способ получить ошибку в 500,19 без видимой причины - пропустить каталоги и / или нарушить права доступа к ним.
В случае этого вопроса, я полагаю, что вопрос задает о полной версии IIS. Я предполагаю это из-за этой строки:
Установщик IIS обычно создает
wwwroot
для вас корневую папку по умолчанию для всех веб-сайтов и точку монтирования для виртуальных каталогов. Он всегда существует, так что нет проблем, вы обычно не заботитесь об этом.Поскольку файлы web.config являются иерархическими, вы можете поместить туда основной файл web.config и иметь некоторые корневые настройки, и все сайты будут его наследовать. IIS проверяет, существует ли этот файл, и пытается загрузить его.
Тем не менее, первая забавная часть:
Этот каталог будет существовать, если вы правильно установили IIS. Если он не существует, вы получите ошибку 500-класса. Однако, если вы играете с правами доступа к файлам / каталогам, особенно «продвинутым», вы фактически можете случайно запретить учетной записи службы IIS сканировать / читать содержимое этого каталога. Если IIS не может проверить, существует ли этот wwwroot \ web.config, или если он существует, и IIS не может открыть и прочитать его - ошибка bam - класса 500.
Однако для полного IIS это очень маловероятно. Разработчики / администраторы, работающие с полным IIS, обычно неохотно относятся к игре,
wwwroot
поэтому она обычно остается правильно настроенной.Тем не менее, на IIS Express ..
Обычно IIS Express «просто работает». Часто разработчики, использующие IIS Express, часто не знают, насколько внутренне это похоже на реальный IIS.
Вы можете легко наткнуться на тот факт, что IIS Express имеет свой собственный файл applicationHost.config, а VS создает и управляет им для вас (правильно, в некоторой степени), и этот вид откровения говорит вам, что это не так просто и точно. и нажмите, как кажется на первый взгляд.
Помимо этого файла конфигурации VisualStudio также создает пустую структуру каталогов в вашей
Documents
папке. Если я правильно помню, IIS Express считает эти папки корневыми каталогами вашего веб-сайта (ов), на которые смонтированы виртуальные каталоги с вашим кодом.Позже, как и IIS, при запуске IIS Express ожидает , что эти папки существуют, и проверяет наличие корневых файлов web.config. На сайте web.config файлы. Почти всегда эти файлы web.config отсутствуют - и это нормально, потому что они вам не нужны - у вас есть ** приложение web.config ", они размещаются вместе с остальным содержимым в виртуальных каталогах.
Теперь вторая забавная часть: IIS Express ожидает, что пустые каталоги. Они могут быть пустыми, но они должны существовать. Если они не существуют - вы получите ошибку класса 500, сообщающую, что файл «web.config» по этому пути не доступен.
Первый раз, когда я столкнулся с этой проблемой, был, когда я очищал свой жесткий диск. Я обнаружил, что папка «документы \ веб-сайты» полна мусора, я узнал несколько летних проектов, над которыми я больше не работаю, все пустые, ни одного файла, поэтому я удалил все это. Через неделю - bam - я не могу запустить / отладить ни один из сайтов, на которых я работал в данный момент. Ошибка 500.19, не могу прочитать файл конфигурации.
Итак, если вы используете IIS Express и видите ошибку класса 500, говорящую о чтении конфигурации, внимательно проверьте сообщение об ошибке и прочитайте все упомянутые пути. Если вы видите что-то вроде:
Идите туда, где именно указана ошибка, убедитесь, что эти папки существуют, убедитесь, что рабочая учетная запись IIS может просматривать и читать их, и если вы заметите, что что-то не так, возможно, это будет так.
КСТАТИ. В VisualStudio в ProjectProperties / Web есть кнопка «Создать виртуальный каталог». Он, по сути, делает именно это, поэтому вы можете попробовать это в первую очередь, но IIRC может также несколько раз очистить / перезаписать / поменять разделы конфигурации в файле applicationHost.config, поэтому будьте осторожны с этой кнопкой, если у вас есть какие-либо пользовательские настройки.
источник
В моем случае, что-то не так с установкой .NET Core Windows Hosting Bundle.
Я установил это и перезапустил IIS, используя («net stop was / y» и «net start w3svc») после установки, но я получил бы ошибку 500.19 с кодом ошибки 0x8007000d и источником конфигурации -1: 0 :.
Мне удалось решить эту проблему, восстановив установку Windows Hosting Bundle .NET Core и перезапустив IIS с помощью команд, упомянутых выше.
Надеюсь, это поможет кому-то!
источник
Эта прекрасная подробная ошибка все еще присутствует в 2019 году! Я просто хочу добавить, что если вы
web.config
действительны и доступны, это, скорее всего, проблема зависимости .Как упомянуто ФП, это был
AJAX
модуль, а другими, как правило, иRewrite
модуль. Просто следите в своем файле web.config, на какие модули и библиотеки ссылаются ваши теги, так как код ошибки 0x8007000d может касаться ЛЮБОЙ зависимости .В моем случае я не осознавал, что
AspNetCore
пакет отсутствует и должен был быть установлен! Так счастлив, что нашел этот пост!источник
Это может или не быть связано .... Я начал с той же ошибки, упомянутой выше, начал поиск в Google, внесение изменений, получение новых ошибок, бесконечный цикл.
Изменение, вызвавшее эту ошибку, связывалось с делегированием функций в диспетчере IIS в разделе «Управление» сервера. Извините, я не могу вспомнить, какую я поменял, но поиск в Google может помочь.
Это заставило меня пройти первую ошибку в совершенно новый поток других, совершенно бессмысленных. (Я получаю одну ошибку при работе в виртуальном каталоге, преобразование его в приложение приводит к другой ошибке, etec и т. Д.). В конечном итоге эта серия ошибок была решена следующим образом: диспетчер IIS, пулы приложений, DefaultAppPool, включение 32-разрядных приложений = True
Я запустил это приложение на 32-битной Windows XP Box, и теперь я запускаю его на 64-битной Windows 7.
Надеюсь, это поможет кому-то еще.
источник
Мой IIS 7.5 не понимает тег в web.config. В VS 2010 этот тег также подчеркивается. Проверьте ваш файл конфигурации точно, чтобы найти все подчеркнутые теги. Я поставил это в комментарии, и ошибка исчезла.
источник
Прокомментируйте следующие строки в файле web.config.
Это будет работать
источник
У меня была такая же ошибка. У меня был сайт IIS с .net Framework версии 2.0, но моему приложению требовался 4.0. Я изменил версию, и это сработало.
Размещение просто как напоминание, если кто-то может иметь такую же проблему.
источник
Убедитесь, что все функции IIS включены правильно.
Прокрутите вниз до Информационные службы Интернета
Откройте выпадающий список World Wide Web plus
источник
Приведенный ниже конфиг был причиной моей проблемы:
Примечание. Я удалил этот раздел для локального тестирования, так как он отлично работает в Azure.
источник
У меня была такая же проблема в Windows 7.
Решение состояло в том, чтобы перейти к основным настройкам> подключиться как> конкретный пользователь - и войти в систему как пользователь, а не по умолчанию «сквозной»
Это исправило проблему для меня.
источник
Windows 7
Попробуй это,
запустите cmd от имени администратора.
Unistall все это.
Переустанови иис и нормально работает
Alain
источник
Я получил эту ошибку, поместив
<customErrors>
тег внутри<system.webServer>
вместо того,<system.web>
где он принадлежит. Под<customErrors>
биркой была небольшая волнистость, но я не сразу это заметил.источник
Как и в верхнем ответе , мы получили это невероятно бесполезное исключение из-за отсутствия модуля IIS CORS. Это была та же самая ошибка с кодом ошибки (0x8007000d) и источником конфигурации (-1: 0 :), но установка модуля перезаписи URL не устранила ее.
Недавно мы обновили web.config, чтобы включить CORS для некоторых разработчиков, которым это необходимо, но не ожидали, что всем разработчикам потребуется установить модуль IIS CORS. К сожалению, похоже, что это необходимо.
Чтобы это исправить, установите модуль IIS CORS отсюда .
источник
Если вы развертываете приложение asp.net.core, вы также должны установить основной пакет хостинга .net. https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/index?view=aspnetcore-3.0#install-the-net-core-hosting-bundle
источник