ASP.NET: помилка HTTP 500.19 - внутрішня помилка сервера 0x8007000d


115

Я тиражую розгортання веб-додатків і знайшов кілька проблем, пов’язаних із цим HTTP Error 500.19. Моя машина працює під управлінням Windows 7, поки робоча розробка використовує Windows 8 . Ми розробляємо веб-додаток за допомогою Visual Studio 2010 .

По-перше, я отримав код помилки 0x80070021, подібний до розміщеного тут . Я оновлюю свою web.config відповідно до прийнятої відповіді, і тоді я отримав наступний код помилки (який схожий на розміщений тут ).

HTTP Error 500.19 - Internal Server Error
Error Code 0x8007000d
Config Source -1: 0:

Я прочитав визначення симптомів на сторінці підтримки Microsoft і причиною помилки є:

Ця проблема виникає через те, що файл ApplicationHost.config або файл Web.config містить неправильно сформований XML-елемент.

і рішення є

Видаліть неправильно сформований елемент XML з файла ApplicationHost.config або з файлу Web.config.

Однак веб-конфіг, який я використовував, ідеально працює в оригінальному середовищі розробки.

Ось що я перевірив і спробував поки що:

  1. Встановіть ASP.NET, зателефонувавши на aspnet_regiis -i
  2. Встановіть мою програму для використання іншого пулу програм (ASP.NET v4.0, .NET v4 тощо)
  3. Файл ApplicationHost.config як і раніше використовує за замовчуванням у Windows 7.

Це частина мого Web.Config

<system.webServer>
    <section name="handlers" overrideModeDefault="Allow" /> 
    <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
    <handlers>
        <remove name="UrlRoutingHandler" />
        <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
    <urlCompression doStaticCompression="true" doDynamicCompression="false"></urlCompression>
    <directoryBrowse enabled="true" />
    <defaultDocument>
        <files>
            <add value="Logon.aspx" />
        </files>
    </defaultDocument>
</system.webServer>

Я читав подібні / дублікати / закриті дописи (близько 13) в stackoverflow, спробував усі, крім відповіді, пов’язаної з Ajax (це пов’язано), і досі не маю підказки про те, що таке помилка.

Хтось, як виправити цю помилку? (І якщо можливо, потрібно перевірити вичерпний список речей, щоб ми могли зменшити подібні посади, як це.) Я готовий надати більше деталей.


Я щойно вирішив цю проблему. Хоча помилка вказує на файл web.config, це може бути проблемою і з appsettings.config. Якщо будь-який з них неправильно сформований, ви отримаєте ту ж помилку
PGardockiDotNet

Відповіді:


273

Помилка 0x8007000d означає, що модуль переписування URL-адреси (на який посилається web.config) відсутній або не встановлена ​​належна версія.

Просто встановіть модуль перезапису URL-адреси через інсталятор веб-платформи.

Я рекомендую перевірити всі залежності від web.config та встановити їх.


23
Я хотів би, щоб IIS дав більш описове повідомлення про помилку, якби в ньому було сказано "Нерозпізнаний модуль: UrlRewritingNet", я би врятував дві години цього ранку. +1 за припинення мого болю :)
AlexFoxGill

17
Дякую. Додано "Переписати URL-адресу 2.0" через інсталятор веб-платформи, а потім виправлено.
Джихан Якар

З такою ж проблемою прожили століття, переглядаючи «пошкоджені» XML-файли, поки я не наткнувся на цей коментар, згадуючи модуль переписування URL-адрес. Цього було достатньо, щоб викликати мій спогад про вирішення цієї самої речі кілька місяців тому! (Я записую цього разу) Дякую!
антон

4
Добре, навіть веб-платформа сказала, що вона "встановлена", однак вона не відображалася в IIS, я переходжу сюди iis.net/downloads/microsoft/url-rewrite , завантажуйте належну версію, видаляйте поточну та повторно встановити, закрити IIS та перезапустити IIS, тепер я бачу "Перезапис URL-адрес".
Коробка дуже

Дуже дякую. Ця відповідь врятувала мені день. Я встановив "Перезапис URL-адрес" через інсталятор веб-платформи на IIS 10, сервер Windows 2016 і помилка зникла.
Аніл Гупта

34

Коли я намагався створити веб-сайт .NET Core 1.0, я отримав цю помилку, і спробував усе, що я міг знайти без везіння, включаючи перевірку файлу web.config, дозволи IIS_IUSRS, модуль перезапису URL-адреси IIS тощо. Зрештою, я з цієї сторінки встановлено DotNetCore.1.0.0-WindowsHosting.exe : https://www.microsoft.com/net/download, і він почав працювати відразу.

Конкретне посилання для завантаження: https://go.microsoft.com/fwlink/?LinkId=817246


4
Спасибі людино! Це те, що мені потрібно для моїх основних програм. Тим, хто хоче знати, як розмістити основні веб-сайти в iis, можна зайти на docs.microsoft.com/en-us/aspnet/core/publishing/iis
muhihsan

1
Це для всіх версій Core, а не лише 1.0. (Ядро потрібно встановити на сервері.)
Патрік

1
Це спрацювало для мене після спробу всього іншого. Дякую.
Андрій

Щоб отримати останню версію, ви можете зайти сюди docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/…
Леонард AB

1
Дякую за це, мені вдалося змусити його працювати, запустивши ремонт моєї установки DotNetCore.
Шейн

21

У моєму випадку, оскільки я перевстановив iis, мені потрібно було зареєструвати iis за допомогою точки 4 за допомогою цієї команди:

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

21

Встановити перезапис URL-адрес:

ОНОВЛЕННЯ - тепер це доступно тут (і працює з IIS 7-10):

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

Переконайтеся, що для вашого сервера IIS встановлено наступне значення "Дозволено":

введіть тут опис зображення


Дякуємо за посилання! Я встановив це за допомогою функцій Додати / Видалити, але це не виправлено. Лише завантаження з цього посилання працювало.
Лука

5

Сюди запізнюються на вечірку, але я щойно боровся з точно такою ж проблемою (симптомами) і проклинаю відсутність деталізації повідомлень про помилки. Він працював чудово на машинах IIS 8+, але Win 7 отримав ці INSTANT HTTP 500.19 помилок. Для мене це було так само нерозумно, як мати непідтримуваний елемент конфігурації у файлі config:

 <applicationInitialization doAppInitAfterRestart="true">
  <add initializationPage="/" />
</applicationInitialization>

Тож під час роботи старих файлів web.config добре працював, я просто розмежував їх і почав рубати нові блоки, поки не отримав сторінку для початку завантаження. Якби я бачив це як відповідь, я б пішов цим шляхом негайно, оскільки знав, що жодне з популярних рішень не було актуальним. Так що ви йдете :)


Це була моя проблема. Дякую!
Ерік Ш

У мене теж було це питання. Дякую!
Хосе Маргаса Лопес

4

У моєму випадку (.Net Core Web API) для цієї проблеми Помилка HTTP 500.19 - Внутрішня помилка сервера 0x8007000d

Спочатку завантажте dotnet-hosting-3.0.0-preview5-19227-01-win (.Net Core 3) або dotnetcore 2 hasting windows

https://download.visualstudio.microsoft.com/download/pr/5bed16f2-fd1a-4027-bee3-3d6a1b5844cc/dd22ca2820fadb57fd5378e1763d27cd/dotnet-hosting-3.1.4-win.exe

Будь-яка програма .net core 3.1, або кутова, або mvc, потребує цього.

По-друге, встановіть його як адміністратор Відкрийте cmd як адміністратор, введіть iisreset, натисніть клавішу Enter

Тож оновіть додаток localhost

З повагою MMTofighi з Ірану


1

Проблема вирішена. Ось етапи, які я спробував:

  • Увімкніть 32-бітну програму в IIS -> Пул додатків -> Розширені налаштування
  • Скопіюйте System.EnterpriseServices.dll і System.EnterpriseServices.Wrapper.dll з папки C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 у папку бін програми
  • Зроби коментарі / коментарі до розділів на web.config і виявив, що проблема пов'язана з посиланням на DLL.

Конфігурація, яку я прокоментував попередню, яку я додав:

<section name="handlers" overrideModeDefault="Allow" /> 
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow"/>
  • Додайте потрібну FasterFlect.DLL, використовувану Combres.DLL v2.1.0.0, у папку бін програми (завантажте повний zip з кодексу Combres, тому що необхідний швидкий вибір DLL V2.0.3732.24338 не може бути знайдений у quickflect codeplex) та інші DLL. Для зручності використовуйте повний Combres.DLL (1,3 МБ)
  • Перевірте, чи версії DLL та маркери відкритого ключа правильно налаштовані в web.config за допомогою інструменту, наприклад .NET Reflector

1

Я розумію, що ця помилка може статися через багато різних причин. У моєму випадку це було через те, що я видалив службу WSUS з серверних ролей і весь IIS знизився. Провівши трохи досліджень, я виявив, що при видаленні WSUS видаляється кілька клітинок, які використовуються для стиснення http. Оскільки цих dll бракувало, і IIS все ще шукав їх, я зробив скидання, використовуючи таку команду в CMD:

appcmd set config -section:system.webServer/httpCompression /-[name='xpress']

Бінго! Проблема впорядкована зараз. Не забудьте запустити його як адміністратор. Вам також може знадобитися зробити "iisreset". Про всяк випадок.

Сподіваюся, це допомагає іншим. Ура



1

Ремонт хостинг-пакету DotNetCore зробив для мене хитрість. : /


0

У мене була ця проблема з абсолютно новим веб-сервісом. Вирішили це, додавши доступ лише для читання для всіх у Властивості-> Безпека для папки, в якій була служба.


-1

Для мене справа полягала в налаштуванні мого веб-сервера для використання найновішої технології для підтримки мого додатка ASP.NET 5!

Наступна URL-адреса дала мені всі необхідні поради:

https://docs.asp.net/en/1.0.0-rc1/publishing/iis-with-msdeploy.html

Сподіваюся, це допомагає :)


2
Чи можете ви описати деякі важливі моменти, що містяться у посиланні? Таким чином, відповідь може залишитися корисною, якщо посилання стане розірваною або недоступною.
матч
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.