Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#25800 closed Uncategorized (invalid)

IIS ISAPI request throws AppRegistryNotReady: Apps aren't loaded yet.

Reported by: Ola Owned by: nobody
Component: HTTP handling Version: 1.8
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

After deep investigation of why IIS throws A server error occurred. Please contact the administrator.` looks like

url(r'^render_template/', views.render_template, name="render_template"),


def render_template(request):
    try:
        logger.error("test template iis")
        context = {'foo': 'template'}
        t = template_loader.get_template('webclient/test.html')
        c = RequestContext(request, context)
        return HttpResponse(t.render(c))
    except:
        logger.error(traceback.format_exc())
        return HttpResponse(traceback.format_exc())

throws

Traceback (most recent call last): File "C:\OMERO.server\lib\python\omeroweb\webclient\views.py", line 36, in render_template t = template_loader.get_template('webclient/test.html') File "C:\Python27\lib\site-packages\django\template\loader.py", line 35, in get_template return engine.get_template(template_name, dirs) File "C:\Python27\lib\site-packages\django\template\backends\django.py", line 30, in get_template return Template(self.engine.get_template(template_name, dirs)) File "C:\Python27\lib\site-packages\django\template\engine.py", line 167, in get_template template, origin = self.find_template(template_name, dirs) File "C:\Python27\lib\site-packages\django\template\engine.py", line 141, in find_template source, display_name = loader(name, dirs) File "C:\Python27\lib\site-packages\django\template\loaders\base.py", line 13, in __call__ return self.load_template(template_name, template_dirs) File "C:\Python27\lib\site-packages\django\template\loaders\base.py", line 17, in load_template template_name, template_dirs) File "C:\Python27\lib\site-packages\django\template\loaders\app_directories.py", line 36, in load_template_source for filepath in self.get_template_sources(template_name, template_dirs): File "C:\Python27\lib\site-packages\django\template\loaders\app_directories.py", line 26, in get_template_sources template_dirs = get_app_template_dirs('templates') File "C:\Python27\lib\site-packages\django\utils\lru_cache.py", line 125, in wrapper result = user_function(*args, **kwds) File "C:\Python27\lib\site-packages\django\template\utils.py", line 122, in get_app_template_dirs for app_config in apps.get_app_configs(): File "C:\Python27\lib\site-packages\django\apps\registry.py", line 137, in get_app_configs self.check_apps_ready() File "C:\Python27\lib\site-packages\django\apps\registry.py", line 124, in check_apps_ready raise AppRegistryNotReady("Apps aren't loaded yet.") AppRegistryNotReady: Apps aren't loaded yet.

Note above error appear only with IIS response rendering template, plain HttpResponse("string") or JsonResponse, HttpResponseRedirect works as expected.

Change History (5)

comment:1 by Tim Graham, 8 years ago

Resolution: invalid
Status: newclosed

Please see the Troubleshooting guide which describes reasons why you would hit AppRegistryNotReady. As with #25607, please use our support channels at TicketClosingReasons/UseSupportChannels as the report doesn't demonstrate that Django is at fault. Thanks!

comment:2 by Aymeric Augustin, 8 years ago

To expand on what Tim just said -- your deployment probably bypasses the official APIs for running Django on a WSGI server. As a consequence, in Django ≥ 1.7, django.setup() isn't called and you're seeing this exception.

comment:3 by Ola, 8 years ago

I went one step forward and now got

Traceback (most recent call last):
File "c:\OMERO.server\lib\python\omeroweb\webclient\views.py", line 197, in login form = LoginForm(data=request.POST.copy())
File "c:\OMERO.server\lib\python\omeroweb\webadmin\forms.py", line 52, in __init__ super(LoginForm, self).__init__(*args, **kwargs)
File "c:\OMERO.server\lib\python\omeroweb\custom_forms.py", line 35, in __init__ super(NonASCIIForm, self).__init__(*args, **kwargs)
File "C:\Python27\lib\site-packages\django\forms\forms.py", line 129, in __init__ self.label_suffix = label_suffix if label_suffix is not None else _(':')
File "C:\Python27\lib\site-packages\django\utils\translation\__init__.py", line 84, in ugettext return _trans.ugettext(message)
File "C:\Python27\lib\site-packages\django\utils\translation\trans_real.py", line 327, in ugettext return do_translate(message, 'ugettext')
File "C:\Python27\lib\site-packages\django\utils\translation\trans_real.py", line 304, in do_translate _default = _default or translation(settings.LANGUAGE_CODE)
File "C:\Python27\lib\site-packages\django\utils\translation\trans_real.py", line 206, in translation _translations[language] = DjangoTranslation(language)
File "C:\Python27\lib\site-packages\django\utils\translation\trans_real.py", line 116, in __init__ self._add_installed_apps_translations()
File "C:\Python27\lib\site-packages\django\utils\translation\trans_real.py", line 164, in _add_installed_apps_translations "The translation infrastructure cannot be initialized before the " \nAppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time. 

It looks very simmilar to https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/django-users/jk_BrQY_S5c/1cWN6KF9qNIJ although I use wsgi_isapi rather then fastcgi. Calling setup like https://github.com/aleksandra-tarkowska/openmicroscopy/blob/iss_deploy_improvement/components/tools/OmeroPy/src/omero_web_iis.py cause IIS error

comment:4 by Ola, 8 years ago

and I am using from django.utils.translation import ugettext_lazy as _

in reply to:  4 comment:5 by Shai Berger, 8 years ago

Replying to atarkowska:

and I am using from django.utils.translation import ugettext_lazy as _

The traceback you quote claims otherwise.

Also, it has been mentioned to you that Trac is not a support channel. The place to ask "is this a bug" questions, when you are not sure what is wrong, is the django-users mailing list or the #django IRC channel. This ticket has been closed, and you should expect no more answers here.

Note: See TracTickets for help on using tickets.
Back to Top