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?