Django на IIS с FastCGI: HTTP-ошибка 500.19 - Внутренняя ошибка сервера (ошибка конфигурации 0x8007000d)

Я пытаюсь разместить приложение Django на IIS с помощью FastCGI. Я выполнил шаги по настройке IIS с FastCGI и обработчиком wfastcgi.py для Django. Однако я постоянно сталкиваюсь с HTTP-ошибкой 500.19 - Внутренняя ошибка сервера с кодом ошибки 0x8007000d.

Сообщение об ошибке не содержит подробностей, кроме того, что "связанные данные конфигурации страницы недействительны" и что может быть проблема с файлом web.config. Ниже приведено содержимое моего файла web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <!-- FastCGI Handler Configuration for Django -->
        <handlers>
            <add name="FastCGIHandler" path="*" verb="*" modules="FastCgiModule"
                 scriptProcessor="C:\Users\administrator.MERITMILL\AppData\Local\Programs\Python\Python312\python.exe|C:\Users\administrator.MERITMILL\AppData\Local\Programs\Python\Python312\Lib\site-packages\wfastcgi.py"
                 resourceType="File" requireAccess="Script" />
        </handlers>

        <staticContent>
            <mimeMap fileExtension=".ttf" mimeType="application/x-font-ttf" />
        </staticContent>

        <httpErrors errorMode="Detailed" existingResponse="PassThrough" />
        <directoryBrowse enabled="false" />
        <tracing>
            <traceFailedRequestsLogging enabled="true" directory="C:\inetpub\logs\FailedReqLogFiles" />
        </tracing>
    </system.webServer>

    <appSettings>
        <add key="PYTHONPATH" value="C:\inetpub\wwwroot\materials" />
        <add key="DJANGO_SETTINGS_MODULE" value="material_management.settings" />
        <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application" />
    </appSettings>
</configuration>

Вот что я сделал на данный момент:

Установлены FastCGI и WFastCGI:

Выполните процесс установки и убедитесь, что обработчик wfastcgi.py правильно расположен и отображен в IIS. Настройте обработчик FastCGI в web.config:

Настроил его так, чтобы он указывал на мой исполняемый файл Python312 и файл-обработчик wfastcgi.py. Конфигурация Web.config:

Я проверил правильность путей и отсутствие дублирующих записей для mimeMap. Я также попытался максимально упростить web.config, чтобы избежать конфликтов. Разрешения:

Убедитесь, что IIS_IUSRS имеет разрешения на чтение для web.config, wfastcgi.py и интерпретатора Python. ApplicationHost.config:

Убедитесь, что файл applicationHost.config содержит правильные настройки FastCGI и сопоставления для Python. Варианты кода ошибки:

Изначально я получил ошибку 0x800700b7 (дублирование записи mimeMap) для .css и .woff, но я решил эту проблему, удалив дубликаты. В настоящее время я сталкиваюсь с кодом ошибки 0x8007000d для недопустимой конфигурации, но я не уверен, что не так с web.config.

Я ожидаю, что IIS будет пересылать запросы к приложению Django через FastCGI без ошибок конфигурации. Приложение должно обслуживать содержимое без выброса ошибок HTTP 500.

Что я спрашиваю:

  • Есть ли что-то конкретное в моей конфигурации (особенно web.config), что может вызвать эту проблему?

  • Может ли проблема быть связана с тем, как FastCGI и Django работают вместе на IIS?

  • Есть ли какие-то известные шаги или конфигурации, которые я могу упустить при развертывании приложения Django через FastCGI на IIS?

Вернуться на верх