
IIS マネージャー 10 と httpPlatformHandler 1.2 を使用して、Windows Server 2016 上で PostgreSQL データベースを使用して Django 4 アプリをホストしようとしています。
アプリケーションとデータベースは、python manage.py runserver
cmd を使用して VM サーバー上で実行する場合、問題なく動作します。問題は、IIS でアクセスしようとすると発生し、ログ ファイルに次のように表示されます。
psycopg.OperationalError: connection failed: :1), port 23825 failed: could not receive data from server: Socket is not connected (0x00002749/10057)
could not send SSL negotiation packet: Socket is not connected (0x00002749/10057)
DBアドレスをlocalhostから127.0.0.1に変更した後、エラーは次のように変わりました。
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\psycopg\connection.py", line 729, in connect
raise ex.with_traceback(None)
django.db.utils.OperationalError: connection failed: could not receive data from server: Socket is not connected (0x00002749/10057)
could not send SSL negotiation packet: Socket is not connected (0x00002749/10057)
そして時折
psycopg.OperationalError: connection failed: could not receive data from server: Socket is not connected (0x00002749/10057)
could not send SSL negotiation packet: Socket is not connected (0x00002749/10057)
IIS には接続を確立できないようにするオプションがいくつかあると思います。
答え1
まだ行っていない場合は、「pg_hba.conf」ファイルを更新して、IPv4 および IPv6 経由でローカルホストからの接続を許可することをお勧めします。
#TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 trust
host all all localhost trust
host all all ::1/128 trust
追加情報はここで見つかります。 https://www.postgresql.org/docs/current/auth-pg-hba-conf.html