Проблемы с веб-приложением (web.ошибки конфигурации) HTTP 500.19 с IIS7.5 и ASP.NET v2

это сводит с ума всю команду. Должна быть какая-то простая неправильно настроенная часть 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:wwwrootweb.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 означает, что в нашей сети есть синтаксическая ошибка.config -- за исключением того, что проект строится и работает нормально локально. Смотрю на паутину.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 фактически говорит мне, какой бит в интернете.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 ошибка...

не удалось загрузить файл или сборку - Система.сеть.Увеличение, Версия=1.0.61025.0, культуры=нейтральный, PublicKeyToken=f2cb5667dc123a56 ' или одна из его зависимостей. Этот система не удается найти указанный файл.

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

мне нужно установить что-то в IIS, чтобы заставить его работать с ними?

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

WEB.CONFIG

вот хлопотные кусочки нашего 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>

17 ответов


У меня были эти точные симптомы, и моя проблема была похожа на Питера. Настраивал существующий проект на новом сервере. Мой проект ссылался на модуль перезаписи URL IIS7, но он еще не был установлен на новом сервере. Установка исправила мою проблему.

можно использовать Установщик Веб-Платформы Microsoft для ее установки. Выполните его, выберите продукты в меню слева выберите пункт сервер и URL переписать in список и установить его.

или вы можете скачать его здесь.


после борьбы с этим в течение дня на новой машине я наткнулся на следующие ссылки. Мне не хватало модулей перезаписи. Это все исправило.

http://forums.iis.net/t/1176834.aspx

http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/


Аха! Я победил эту проблему! Боже мой, это был зверь, для кого-то вроде меня ограниченный опыт в IIS. Я действительно думала, что проведу все выходные, ремонтируя его.

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

Первое, что нужно знать: если вы надеетесь, что это ваше решение, убедитесь, что у вас есть тот же код ошибки (0x8007000d) и источник конфигурации (-1: 0:). Если нет, это не ваше решение.

следующее, что нужно знать:AJAX неправильно установлен в вашем интернете.конфиг!

исправьте это, следуя этому guide:
http://www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx

установите расширения AJAX 1.0 на рабочем сервере, по этой ссылке:

http://www.asp.net/ajax/downloads/archive/
обновление:Microsoft, похоже, удалила вышеуказанную страницу : (


имел ту же проблему, что и выше, тот же код ошибки и т. д. Настройка локального веб-сайта в Windows 8. После долгих поисков было обнаружено, что нам не хватает перезаписи URL. После загрузки все было в порядке. :)


та же проблема на сервере 2016, IIS 10, ошибка 500.19. Я установил модуль перенаправления, и он работал. Я не знаю, почему это не было включено по умолчанию.

https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads

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

эта бесполезная страница здесь:https://support.microsoft.com/en-us/kb/942055


Я просто добавляю answear, потому что я потратил часы, пытаясь решить те же симптомы (но другую проблему):

возможной причиной является x86 dll в 64-битном пуле приложений, решением является включение 32-битных приложений в настройках пула приложений.


для меня, перерегистрация asp.net для iis сделал трюк. Надеюсь, это поможет кому-то еще.

aspnet_regiis.exe -i

подводить итоги на основе ответов здесь и в другом месте:

  1. Проверьте .NET-версию пула приложений (например, 2.0 vs 4.0)
  2. убедитесь, что установлены все модули IIS. В этом случае это были расширения AJAX (возможно, в наши дни это не так), но URL переписать общие.

другой способ получить 500.19 errot без видимой причины-отсутствующие каталоги и / или сломанные разрешения на них.

в случае этого вопроса, я считаю, что вопрос о полной версии IIS. Я предполагаю это из - за этой строки:

Config File         \?\E:\wwwroot\web.config

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

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

однако, первый весело:

этот каталог будет существовать, если у вас правильно установлены IIS. Если он не существует, вы получите ошибку 500-класс. Однако, если вы играете с правами доступа к файлам/каталогам, особенно "продвинутыми", вы можете случайно запретить учетная запись службы IIS от сканирования / чтения содержимого этого каталога. Если IIS не может проверить, является ли это wwwroot\web.config существует, или если он существует, и IIS не может открыть и прочитать его-BAM-500-ошибка класса.

однако для полных IIS это очень маловероятно. Разработчики / администраторы, работающие с полными IIS, обычно неохотно играют с wwwroot поэтому он обычно остается правильно настроенным.

однако, на IIS Экспресс..

обычно IIS Express "просто работает". Часто разработчики, использующие IIS Express часто не знают, насколько внутренне он напоминает реальный IIS.

вы можете легко наткнуться на тот факт, что IIS Express имеет свой собственный applicationHost.config file и VS создают и управляют им для вас (правильно, в какой-то степени), и это своего рода открывающий глаза говорит вам, что это не так просто и не так просто, как кажется на первый взгляд.

помимо этой конфигурации файл, VisualStudio также создает пустую структуру каталогов под . Если я правильно помню, IIS Express считает эти папки корневые каталоги вашего веб-сайта(ов) на котором виртуальные каталоги С кодом монтируются.

позже, так же, как IIS, когда IIS Express запускается, это ждет эти папки для существования и проверки корневой сети.конфигурационные файлы там. The веб-сайт.config файлы. Почти всегда эти паутины.конфигурационные файлы отсутствуют - и это нормально, потому что вы их не хотите - у вас есть веб-приложение**.config", они размещаются вместе с остальным контентом в виртуальных каталогах.

теперь вторая забавная часть: IIS Express ждет что пустые каталоги. Они могут быть пустыми, но они должны существовать. Если их не существует - вы получите ошибку 500-класса, сообщающую вам, что " web.файл config " по этому пути недоступен.

в впервые я столкнулся с этой проблемой, когда очищал свой жесткий диск. Я обнаружил, что папка "документы\веб-сайты", полная мусора, я узнал несколько летних проектов, над которыми я больше не работаю, все пустые, ни одного файла, поэтому я удалил все это. Через неделю-БАМ - я не могу запустить / отладить ни один из сайтов, над которыми я работал в данный момент. Ошибка 500.19, не удается прочитать файл конфигурации.

Итак, если вы используете IIS Express и видите ошибку 500-class, сообщающую о конфигурации чтения, тщательно проверьте сообщение об ошибке и прочитать все пути, упомянутые. Если вы видите что-нибудь вроде:

c:\users\user\documents\visual studio 2013\projects\WebProject1\WebProject1.web\web.config
c:\users\zeshan.munir\documents\visual studio 2015\projects\WebProject1\WebProject1.web\web.config
c:\users\zeshan.munir\documents\visual studio 2017\projects\WebProject1\WebProject1.web\web.config
etc..

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

кстати. В VisualStudio, на ProjectProperties / Web есть кнопка "создать виртуальный каталог". По сути, он делает это, поэтому вы можете попробовать сначала, но IIRC он также может что-то очищает/перезаписывает/меняет разделы конфигурации в applicationHost.файл конфигурации, поэтому будьте осторожны с этой кнопкой, если у вас есть какие-либо пользовательские настройки.


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

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

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

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

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


мой IIS 7.5 не понимает тег в интернете.конфиг В VS 2010 подчеркивается, что тег также. Проверьте файл конфигурации точно, чтобы найти все подчеркнутые теги. Я положил его в комментарий и ошибка уходит.


прокомментируйте следующие строки в интернете.конфигурационный файл.

<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>

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


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

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


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

решение состояло в том, чтобы перейти к основным настройкам > connect as > specific user - и войти в систему как пользователь, а не по умолчанию "pass-through"

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


Windows 7

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

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

Unistall все iis.

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

переустановите iis и нормально это работа

Алена


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


в моем случае было что-то не так с установкой пакета хостинга Windows .NET Core.

Я установил и перезапустил IIS с помощью ("net stop was / y" и "net start w3svc") после установки, но я бы получил эту ошибку 500.19 с кодом ошибки 0x8007000d и источником конфигурации -1: 0:.

мне удалось решить проблему, восстановив установку пакета хостинга .NET Core Windows и перезапустив IIS с помощью команд, о которых я упоминал выше.

надеюсь, это кому-то поможет!