IIS でホストされている Django で PostgreSQL に接続できない

IIS でホストされている Django で PostgreSQL に接続できない

IIS マネージャー 10 と httpPlatformHandler 1.2 を使用して、Windows Server 2016 上で PostgreSQL データベースを使用して Django 4 アプリをホストしようとしています。

アプリケーションとデータベースは、python manage.py runservercmd を使用して 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

関連情報