
Попытка разместить приложение Django 4 с базой данных PostgreSQL на Windows Server 2016 с IIS Manager 10 и httpPlatformHandler 1.2.
Приложение и база данных работают без проблем при запуске на сервере виртуальной машины с помощью python manage.py runserver
cmd. Проблема возникает при попытке доступа с помощью 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)
и после того как я изменил адрес БД с 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