2016-01-17 20 views
7

Tôi đã chơi xung quanh với một tutoiral Django từ Microsoft, làm việc tốt trong môi trường Visual Studio 2015 của tôi với Python 3.4.3. Khi tôi cố gắng chạy nó thông qua máy chủ web của tôi, nó không thành công mặc dù:Django trên IIS: django.core.exceptions.AppRegistryNotReady: Ứng dụng chưa được tải

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: 

Khi tôi kiểm tra mã thông qua "manage.py runserver" trên máy chủ web, nó hoạt động hoàn hảo. Có ai có bất kỳ khuyến nghị về làm thế nào để gỡ lỗi những gì đang xảy ra sai lầm, khi chạy nó thông qua IIS?

Máy chủ đang chạy Python 3.4.3, với django, django-crispy-forms, wfastcgi và mysqlclient được cài đặt. Python được thực hiện thông qua FastCGI trên R2 máy chủ Windows 2012 với IIS 8.5 - cấu hình đã được thực hiện bằng cách sử dụng hướng dẫn tại https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-app-windows-server/

Tôi đã thử:

1) Thêm sau dưới "os env ..." trong tôi manage.py:

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

2) Thêm sau dưới "os env ..." trong manage.py tôi:

import django 
django.setup() 

Khi mọi người khác được đề cập các giải pháp này o có chủ đề, nhưng tiếc là không có may mắn. Tôi hoàn toàn mới với cả Python/Django, vì vậy tôi không có ý tưởng về cách tiến hành. Bất kỳ đầu vào sẽ được nhiều đánh giá cao!

+0

Tôi đã có một vấn đề tương tự cùng một lúc. Đó là một khởi tạo xấu của ứng dụng wsgi. Cuộc gọi thay đổi trên các phiên bản của Django một hướng dẫn có thể không bao gồm của bạn. –

Trả lời

13

Nó chỉ ra rằng hướng dẫn Microsoft được liên kết đã lỗi thời.

Trong web.config, nhu cầu sau đây phải được thay thế:

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

với:

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

và sau đó nó sẽ làm việc :-)

+1

Đối với những gì nó có giá trị ... Cảm ơn bạn. Bạn đã lưu dự án của tôi sau 48 giờ thử và vô nghĩa. –

Các vấn đề liên quan