Ошибка HTTP 500.19, код ошибки 0x8007000d, при попытке использовать «перезапись URL» в IIS 10 - PullRequest
0 голосов
/ 11 февраля 2020

Я попытался использовать <rewrite> в web.config и получил HTTP Ошибка 500.19 код ошибки 0x8007000d.

Пошел в IIS Manager, нашел значок «Перезапись URL» (, что означает, что модуль уже установлен, и мне не нужно устанавливать его снова ), но нажатие на него дало generic c «Произошла ошибка при выполнении этой операции».

Неважно, какой веб-сайт (или сам сервер) я выбрал, щелкнув соответствующий значок «URL Rewrite», он по-прежнему выдавал то же самое сообщение об ошибке.

В какой-то момент сообщение об ошибке начало отображать дополнительную информацию: « Раздел конфигурации 'system.webServer / rewrite / globalRules' не может быть прочитан, поскольку в нем отсутствует объявление раздела ", я Я не могу вспомнить, что менял что-либо, поэтому я не знаю, что вызвало его появление, так что это всего лишь К вашему сведению.

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

1 Ответ

0 голосов
/ 11 февраля 2020

На вашем сервере:

Проверьте, существует ли % SystemRoot% \ system32 \ inetsrv \ rewrite.dll

Если да, откройте этот файл конфигурации в режиме администратора : % SystemRoot% \ System32 \ inetsrv \ Config \ applicationHost.config (для 64-разрядных Windows обязательно используйте 64-разрядный текстовый редактор, иначе вы получите ошибку «файл не найден») и проверьте, есть ли у вас следующие элементы 'rewrite' (родительские элементы предоставлены только для структурной ссылки)

<sectionGroup name="system.webServer">
    <sectionGroup name="rewrite">
    <section name="rules" overrideModeDefault="Allow" />
    <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
    <section name="outboundRules" overrideModeDefault="Allow" />
    <section name="providers" overrideModeDefault="Allow" />
    <section name="rewriteMaps" overrideModeDefault="Allow" />
    <section name="allowedServerVariables" overrideModeDefault="Deny" />
</sectionGroup>



<globalModules>
    <add name="Rewrite" image="%SystemRoot%\System32\inetsrv\rewrite.dll" preCondition="bitness64" />



<location path="" overrideMode="Allow">
    <system.webServer>
        <modules>
            <add name="Rewrite" preCondition="bitness64" />

В моем случае каждая связанная часть отсутствовала в applicationHost.config, мне пришлось добавить все вышеперечисленное , Сохранил файл, перезапустил IIS (может быть, это и не нужно, но у меня была такая роскошь), снова щелкнул значок «Перезапись URL», и ошибка исчезла. После этого я изменил web.config моего сайта, добавив новый раздел, и он заработал, как и ожидалось.

...