IIS上的Django:django.core.exceptions.AppRegistryNotReady:尚未加载应用程序

use*_*710 8 python iis django fastcgi

我一直在玩微软的Django tutoiral,它在我的Visual Studio 2015环境中使用Python 3.4.3运行良好.当我尝试通过我的网络服务器运行它时,它失败了:

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: 
Run Code Online (Sandbox Code Playgroud)

当我通过网络服务器上的"manage.py runserver"测试代码时,它运行得很好.有没有人在通过IIS运行时有任何关于如何调试出错的建议?

服务器也运行Python 3.4.3,安装了django,django-crispy-forms,wfastcgi和mysqlclient.Python在带有IIS 8.5的Windows 2012 R2服务器上通过FastCGI执行 - 配置是使用https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-上的指南完成的.APP-Windows的服务器/

我试过了:

1)在我的manage.py中的"os env ..."下添加以下内容:

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)

2)在我的manage.py中的"os env ..."下添加以下内容:

import django
django.setup()
Run Code Online (Sandbox Code Playgroud)

正如其他人在其他线程中提到这些解决方案,但遗憾的是没有任何运气.我对Python/Django都是全新的,所以我不知道如何继续.任何输入将不胜感激!

use*_*710 14

事实证明,链接的Microsoft指南已过时.

在web.config中,需要替换以下内容:

<add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />
Run Code Online (Sandbox Code Playgroud)

有:

<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
Run Code Online (Sandbox Code Playgroud)

然后它会工作:-)