Я пытаюсь разместить приложение Django (Django 2.1.4, Python 3.6) с использованием IIS на более старом сервере Windows (Windows Server 2008 R2 с пакетом обновления 1). Я успешно развернул его на тестовом сервере (в той же ОС), и он готов к развертыванию в рабочей среде, но у меня возникли проблемы. Я выполнил те же действия по настройке, что и на промежуточном сервере, однако теперь, когда я пытаюсь добраться до основного сайта, мне выдается следующая ошибка ImportError: DLL load failed: The specified module could not be found.
, когда он пытается импортировать _ssl (полная трассировка стека ниже). Это требование для использования аутентификации Okta, а также для включения электронной почты через сайт.
Я установил все зависимости в виртуальной среде и настроил IIS для использования этой среды. Я сделал это с несколькими венами и средой conda, и все без удачи. Если я закомментирую части кода, которые используют Okta, приложение будет работать нормально, пока я не достигну точки, где оно отправляет электронное письмо пользователю, и в этот момент я сталкиваюсь с той же проблемой. Кроме того, если я использую сервер разработки Django с использованием manage.py runserver
, то и Okta, и функция электронной почты работают безупречно. Я также убедился, что приложение работает как пользователь с полными разрешениями как для приложения, так и для виртуальной среды. Я также смог подтвердить, что _ssl.pyd действительно находится в виртуальной среде.
Я предполагаю, что по какой-то причине IIS не может найти или получить доступ к _ssl.pyd, поэтому, если у кого-то есть представление о том, почему это может произойти или что еще может быть причиной, я определенно буду признателен за помощь !
Traceback (most recent call last):
File "C:\ACD_Django\envs\django\Lib\site-packages\wfastcgi.py", line 791, in main
env, handler = read_wsgi_handler(response.physical_path)
File "C:\ACD_Django\envs\django\Lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler
handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
File "C:\ACD_Django\envs\django\Lib\site-packages\wfastcgi.py", line 616, in get_wsgi_handler
raise ValueError('"%s" could not be imported%s' % (handler_name, last_tb))
ValueError: "django.core.wsgi.get_wsgi_application()" could not be imported: Traceback (most recent call last):
File "C:\ACD_Django\envs\django\Lib\site-packages\wfastcgi.py", line 605, in get_wsgi_handler
handler = handler()
File "C:\ACD_Django\envs\django\lib\site-packages\django\core\wsgi.py", line 13, in get_wsgi_application
return WSGIHandler()
File "C:\ACD_Django\envs\django\lib\site-packages\django\core\handlers\wsgi.py", line 136, in __init__
self.load_middleware()
File "C:\ACD_Django\envs\django\lib\site-packages\django\core\handlers\base.py", line 34, in load_middleware
middleware = import_string(middleware_path)
File "C:\ACD_Django\envs\django\lib\site-packages\django\utils\module_loading.py", line 17, in import_string
module = import_module(module_path)
File "C:\Users\mmitcdba\AppData\Local\Continuum\miniconda3\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\ACD_Django\envs\django\lib\site-packages\mozilla_django_oidc\middleware.py", line 21, in <module>
from mozilla_django_oidc.auth import OIDCAuthenticationBackend
File "C:\ACD_Django\envs\django\lib\site-packages\mozilla_django_oidc\auth.py", line 20, in <module>
from josepy.jwk import JWK
File "C:\ACD_Django\envs\django\lib\site-packages\josepy\__init__.py", line 44, in <module>
from josepy.interfaces import JSONDeSerializable
File "C:\ACD_Django\envs\django\lib\site-packages\josepy\interfaces.py", line 8, in <module>
from josepy import errors, util
File "C:\ACD_Django\envs\django\lib\site-packages\josepy\util.py", line 4, in <module>
import OpenSSL
File "C:\ACD_Django\envs\django\lib\site-packages\OpenSSL\__init__.py", line 8, in <module>
from OpenSSL import crypto, SSL
File "C:\ACD_Django\envs\django\lib\site-packages\OpenSSL\crypto.py", line 16, in <module>
from OpenSSL._util import (
File "C:\ACD_Django\envs\django\lib\site-packages\OpenSSL\_util.py", line 6, in <module>
from cryptography.hazmat.bindings.openssl.binding import Binding
File "C:\ACD_Django\envs\django\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 172, in <module>
Binding.init_static_locks()
File "C:\ACD_Django\envs\django\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 142, in init_static_locks
__import__("_ssl")
ImportError: DLL load failed: The specified module could not be found.
StdOut:
StdErr: