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


116

Я реплицирую развертывание веб-приложения и обнаружил несколько проблем, связанных с 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.

Однако используемый мной файл 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 05

17
Спасибо. Добавлен "URL Rewrite 2.0" через установщик веб-платформы, затем исправлен.
Джихан Якар

Была такая же проблема, потратил целую вечность на просмотр «поврежденных» файлов XML, пока я не наткнулся на этот комментарий, в котором упоминается модуль перезаписи URL. Этого было достаточно, чтобы вспомнить, как я решил ту же самую задачу несколько месяцев назад! (На этот раз записываю) Спасибо!
anton

4
Хорошо, даже веб-платформа заявила, что она «установлена», однако она не отображается в IIS, я захожу сюда iis.net/downloads/microsoft/url-rewrite , загружаю нужную версию, удаляю текущую и повторно установите, закройте IIS и перезапустите IIS, теперь я вижу «URL Rewrite».
Box Very

Большое спасибо. Этот ответ спас мне день. Я установил «перезапись 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/…
Леонард А.Б.,

1
Спасибо за это, я смог заставить его работать, запустив Ремонт моей установки DotNetCore.
Шейн

21

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

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

Таким образом, хотя старые файлы web.config работали нормально, я просто сравнивал их и начинал рубить новые блоки, пока не получил страницу, чтобы начать загрузку. Если бы я воспринял это как ответ, я бы сразу пошел по этому пути, поскольку знал, что ни одно из популярных решений не подходит. Итак, поехали :)


Это была моя проблема. Спасибо!
Erik W

У меня тоже была эта проблема. Спасибо!
Хосе Маргаса Лопес

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, будь то приложение angular или mvc.

Во-вторых, установите его как администратор. Откройте cmd как администратор, введите iisreset, нажмите Enter.

Так что обновите свое приложение localhost

С уважением MMTofighi из Ирана


1

Задача решена. Вот шаги, которые я пробовал:

  • Включите 32-битное приложение в IIS -> Пул приложений -> Дополнительные настройки
  • Скопируйте System.EnterpriseServices.dll и System.EnterpriseServices.Wrapper.dll из C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 в папку bin приложения.
  • Сделайте комментарии / раскомментируйте разделы в web.config и обнаружите, что проблема связана с указанной DLL.

Конфигурация, которую я прокомментировал предыдущую, которую я добавил:

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

1

Я понимаю, что эта ошибка может возникнуть по разным причинам. В моем случае это произошло из-за того, что я удалил службу WSUS из ролей сервера, и весь IIS вышел из строя. Проведя небольшое исследование, я обнаружил, что при удалении WSUS удаляются несколько dll, которые используются для сжатия http. Поскольку эти библиотеки отсутствовали, а IIS все еще искал их, я выполнил сброс, используя следующую команду в CMD:

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

Бинго! Теперь проблема решена. Не забудьте запустить его от имени администратора. Вам также может потребоваться выполнить «iisreset». На всякий случай.

Надеюсь, это поможет другим. ура




0

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



-1

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

Следующий URL дал мне все необходимые советы:

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

Надеюсь это поможет :)


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