/ / Django en IIS: django.core.exceptions.AppRegistryNotReady: Las aplicaciones aún no están cargadas: python, django, iis, fastcgi

Django en IIS: django.core.exceptions.AppRegistryNotReady: Las aplicaciones aún no están cargadas: python, django, iis, fastcgi

He estado jugando con un tutoiral Djangode Microsoft, que funcionó bien en mi entorno de Visual Studio 2015 con Python 3.4.3. Cuando intento ejecutarlo a través de mi servidor web, está fallando:

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:

Cuando pruebo el código a través de "manage.py runserver" en el servidor web, funciona perfectamente. ¿Alguien tiene alguna recomendación sobre cómo depurar lo que está mal, al ejecutarlo a través de IIS?

El servidor está ejecutando Python 3.4.3 también, con django, django-crispy-forms, wfastcgi y mysqlclient instalados. Python se ejecuta a través de FastCGI en un servidor Windows 2012 R2 con IIS 8.5. La configuración se realizó utilizando la guía en https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-app-windows-server/

Yo he tratado:

1) Agregando lo siguiente en "os env ..." en mi manage.py:

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

2) Agregando lo siguiente en "os env ..." en mi manage.py:

import django
django.setup()

Como otras personas mencionaron estas soluciones enOtros hilos, pero desafortunadamente sin suerte. Soy completamente nuevo en Python / Django, así que no tengo idea de cómo proceder. ¡Cualquier aporte seria muy apreciado!

Respuestas

13 para la respuesta № 1

Resulta que la guía de Microsoft vinculada está desactualizada.

En web.config, se debe reemplazar lo siguiente:

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

con:

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

y luego funcionará :-)