/ / Django no IIS: django.core.exceptions.AppRegistryNotReady: Aplicativos não são carregados ainda - python, django, iis, fastcgi

Django no IIS: django.core.exceptions.AppRegistryNotReady: Aplicativos não são carregados ainda - python, django, iis, fastcgi

Eu tenho brincado com um tutoiral Djangoda Microsoft, que funcionou bem no meu ambiente do Visual Studio 2015 com o Python 3.4.3. Quando tento executá-lo no meu servidor, ele está falhando:

Error occurred:

Traceback (most recent call last):
File "C:Python34libsite-packageswfastcgi.py", line 805, in main
result = handler(record.params, response.start)
File "C:Python34libsite-packagesdjangocorehandlerswsgi.py", line 158, in __call__
self.load_middleware()
File "C:Python34libsite-packagesdjangocorehandlersbase.py", line 51, in load_middleware
mw_class = import_string(middleware_path)
File "C:Python34libsite-packagesdjangoutilsmodule_loading.py", line 20, in import_string
module = import_module(module_path)
File "C:Python34libimportlib__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1129, in _exec
File "<frozen importlib._bootstrap>", line 1471, in exec_module
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "C:Python34libsite-packagesdjangocontribauthmiddleware.py", line 3, in <module>
from django.contrib.auth.backends import RemoteUserBackend
File "C:Python34libsite-packagesdjangocontribauthbackends.py", line 4, in <module>
from django.contrib.auth.models import Permission
File "C:Python34libsite-packagesdjangocontribauthmodels.py", line 4, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "C:Python34libsite-packagesdjangocontribauthbase_user.py", line 49, in <module>
class AbstractBaseUser(models.Model):
File "C:Python34libsite-packagesdjangodbmodelsbase.py", line 94, in __new__
app_config = apps.get_containing_app_config(module)
File "C:Python34libsite-packagesdjangoappsregistry.py", line 239, in get_containing_app_config
self.check_apps_ready()
File "C:Python34libsite-packagesdjangoappsregistry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren"t loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren"t loaded yet.


StdOut:

StdErr:

Quando eu testo o código via "manage.py runserver" no servidor, ele funciona perfeitamente. Alguém tem alguma recomendação sobre como depurar o que está errado, ao executá-lo através do IIS?

O servidor está executando o Python 3.4.3 também, com o django, o django-crispy-forms, o wfastcgi e o mysqlclient instalados. O Python é executado via FastCGI em um servidor Windows 2012 R2 com o IIS 8.5 - a configuração foi feita usando o guia em https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-app-windows-server/

Eu tentei:

1) Adicionando o seguinte em "os env ..." no meu manage.py:

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

2) Adicionando o seguinte em "os env ..." no meu manage.py:

import django
django.setup()

Como outras pessoas mencionaram estas soluções emoutros tópicos, mas infelizmente sem sorte. Eu sou completamente novo em ambos os Python / Django, então não tenho idéia de como proceder. Qualquer entrada seria muito apreciada!

Respostas:

13 para resposta № 1

Acontece que o guia da Microsoft vinculado está desatualizado.

No web.config, o seguinte precisa ser substituído:

<add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />

com:

<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />

e então vai funcionar :-)