2016-01-17 11 views
7

Mi sono divertito con un tutorial Django di Microsoft, che ha funzionato bene nel mio ambiente Visual Studio 2015 con Python 3.4.3. Quando provo a farlo funzionare attraverso il mio server web, si sta fallendo però:Django su IIS: django.core.exceptions.AppRegistryNotReady: le app non sono ancora state caricate

Error occurred: 

Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\wfastcgi.py", line 805, in main 
    result = handler(record.params, response.start) 
    File "C:\Python34\lib\site-packages\django\core\handlers\wsgi.py", line 158, in __call__ 
    self.load_middleware() 
    File "C:\Python34\lib\site-packages\django\core\handlers\base.py", line 51, in load_middleware 
    mw_class = import_string(middleware_path) 
    File "C:\Python34\lib\site-packages\django\utils\module_loading.py", line 20, in import_string 
    module = import_module(module_path) 
    File "C:\Python34\lib\importlib\__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:\Python34\lib\site-packages\django\contrib\auth\middleware.py", line 3, in <module> 
    from django.contrib.auth.backends import RemoteUserBackend 
    File "C:\Python34\lib\site-packages\django\contrib\auth\backends.py", line 4, in <module> 
    from django.contrib.auth.models import Permission 
    File "C:\Python34\lib\site-packages\django\contrib\auth\models.py", line 4, in <module> 
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager 
    File "C:\Python34\lib\site-packages\django\contrib\auth\base_user.py", line 49, in <module> 
    class AbstractBaseUser(models.Model): 
    File "C:\Python34\lib\site-packages\django\db\models\base.py", line 94, in __new__ 
    app_config = apps.get_containing_app_config(module) 
    File "C:\Python34\lib\site-packages\django\apps\registry.py", line 239, in get_containing_app_config 
    self.check_apps_ready() 
    File "C:\Python34\lib\site-packages\django\apps\registry.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 prova il codice tramite "runserver manage.py" sul server web, funziona perfettamente. Qualcuno ha qualche consiglio su come eseguire il debug di cosa sta andando storto, quando viene eseguito tramite IIS?

Il server esegue anche Python 3.4.3, con django, django-crispy-forms, wfastcgi e mysqlclient installati. Python viene eseguito tramite FastCGI sul server R2 di Windows 2012 con IIS 8.5 - configurazione è stata fatta usando la guida al https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-app-windows-server/

ho provato:

1) L'aggiunta dei seguenti sotto "os env ..." nel mio manage.py:

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

2) l'aggiunta dei seguenti sotto "os env ..." nel mio manage.py:

import django 
django.setup() 

Come altre persone menzionate queste soluzioni in o ther thread, ma sfortunatamente senza fortuna. Sono completamente nuovo sia per Python/Django, quindi non ho idea di come procedere. Qualsiasi input sarebbe molto apprezzato!

+0

Ho avuto un problema simile una volta. È stata una brutta inizializzazione dell'app wsgi. La chiamata è cambiata rispetto alle versioni di Django e il tutorial potrebbe non riguardare il tuo. –

risposta

13

Si scopre che la guida Microsoft collegata non è aggiornata.

Nel web.config, le seguenti esigenze da sostituire:

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

con:

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

e allora funzionerà :-)

+1

Per quello che vale ... Grazie. Hai salvato il mio progetto dopo 48 ore di tentativi ed errori senza senso. –

Problemi correlati