前提・実現したいこと
Python3.6+Django3.0にてWebアプリケーションを作成しています。
Windows Server 2012RC上にIISを立て、そこにアプリを載せる予定になっています。
まずは開発環境の整備として、Windows10端末にIISとwfastcgiの設定をし、
起動などができるか確認をしています。
Django内部サーバーを使用すれば問題なく動作するのですが、
IIS経由のアクセスを試したところ、エラーとなってしまいます。
サーバー側はあまり知識がなく、原因の調査方法もよくわかっていません。
調査方法だけでもご存知でしたら教えてください。
発生している問題・エラーメッセージ
HTTPエラー500.0 - Internal Server Error c:\inetpub\venv\scripts\python.exe - FastCGIプロセスが予期せずに終了しました モジュール: FastCgiModule 通知: ExecuteRequestHandler ハンドラー: Python FastCGI エラーコード: 0xc0000409
設定
プロジェクト名 = プロジェクト名
venv環境パス = venvによって仮想環境を立てたパス
アプリケーションパス = Default Web Siteのパス = manage.pyの格納されたディレクトリへのパス
(C:\inetpub\wwwroot[プロジェクト名])
【FastCGIの設定】
完全なパス | 引数 | 最大インスタンス数 | インスタンスの最大要求数 |
---|---|---|---|
c:[venv環境パス]\scripts\python.exe | C:[venv環境パス]\lib\site-packages\wfastcgi.py | 0 | 200 |
【ハンドラーマッピング】
|名前|パス|状況|パスの種類|ハンドラー|実行可能ファイル|
|:--|:--|:--|:--|:--|
|Python FastCGI|*|有効|指定なし|FastCgiModule|C:[venv環境パス]\scripts\python.exe|C:[venv環境パス]\lib\site-packages\wfastcgi.py|
【web.config】
<configuration> <appSettings> <!-- Required settings --> <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" /> <add key="PYTHONPATH" value="C:[アプリケーションパス]" /> <!-- Optional settings --> <add key="DJANGO_SETTINGS_MODULE" value="[プロジェクト名].settings" /> <add key="WSGI_LOG" value="C:\logs\log.log" /> </appSettings> <system.webServer> <handlers> <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:[venv環境パス]\scripts\python.exe|C:[venv環境パス]\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" /> </handlers> </system.webServer> </configuration>
試したこと
ネット上の情報を調べ、こちらの手順通りの設定を行いました。
https://qiita.com/okoppe8/items/905d2c22e750261c62f0
https://thinkami.hatenablog.com/entry/2015/10/26/070118
これらの他に、VC++の再頒布可能プログラムをインストールすることで改善するという情報がありましたので、
Python3.6に対応する14.x(VC++2015-2019)のインストールを試しましたが、こちらでも改善しませんでした。
「失敗した要求トレースの規則」に500エラーを追加しましたが、ログが吐かれません。
【追記:2020/7/14 15:38】
Python3.8を使用するとエラーコードが0x00000067に変化しました。
Django側のダウングレード(2.2)を試してみましたが、こちらは変化がありません。
イベントビューアーのエラーログにて次の情報がありました。
障害が発生しているアプリケーション名:python.exe 障害が発生しているモジュール名:ucrtbase.dll 例外コード:0xc0000409 障害オフセット:0x000a522a
補足情報(FW/ツールのバージョンなど)
Python 3.6.8
(Pythonのバージョンはstableではなく、wfastcgiサポート範囲のPython3.6を使用しています。)
Django 3.0.2
wfastcgi 3.0.0