Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #3194 (closed)

Opened 14 years ago

Closed 14 years ago

Last modified 13 years ago

Windows FastCGI alternative

Reported by: cxallan Owned by: cxallan
Priority: minor Milestone: OMERO-Beta4.2.1
Component: General Version: n.a.
Keywords: n.a. Cc: jamoore
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: 0.0d
Sprint: 2010-11-11 (19)

Description (last modified by cxallan)

An alternative for the FastCGI + Apache/nginx/lighttpd on UNIX based platforms should be investigated for Windows. Options include:

Attachments (2)

omero_web_django_isapi.py (1.2 KB) - added by cxallan 14 years ago.
Example install script for ISAPI WSGI on IIS
IIS7Requirements.jpg (56.9 KB) - added by cxallan 14 years ago.
IIS7 requirements on Windows Vista

Download all attachments as: .zip

Change History (16)

comment:1 Changed 14 years ago by cxallan

  • Status changed from new to assigned

comment:2 Changed 14 years ago by cxallan

pyisapie is a complete wash. Largely unsupported. Made good progress with isapi-wsgi on IIS7 (Windows Vista Enterprise), am hitting the following error:

Wed, 27 Oct 2010 16:29:46 views-feedback ERROR    handler500: Server error
Wed, 27 Oct 2010 16:29:46 views-feedback ERROR    Traceback (most recent call last):

  File "C:\omero_dist\lib\python\django\core\handlers\base.py", line 119, in get_response
    return callback(request, **param_dict)

  File "C:\omero_dist\lib\python\omeroweb\feedback\views.py", line 155, in handler404
    return page_not_found(request, "404.html")

  File "C:\omero_dist\lib\python\django\views\defaults.py", line 14, in page_not_found
    return http.HttpResponseNotFound(t.render(RequestContext(request, {'request_path': request.path})))

  File "C:\omero_dist\lib\python\django\template\__init__.py", line 178, in render
    return self.nodelist.render(context)

  File "C:\omero_dist\lib\python\django\template\__init__.py", line 779, in render
    bits.append(self.render_node(node, context))

  File "C:\omero_dist\lib\python\django\template\__init__.py", line 792, in render_node
    return node.render(context)

  File "C:\omero_dist\lib\python\django\template\loader_tags.py", line 97, in render
    return compiled_parent.render(context)

  File "C:\omero_dist\lib\python\django\template\__init__.py", line 178, in render
    return self.nodelist.render(context)

  File "C:\omero_dist\lib\python\django\template\__init__.py", line 779, in render
    bits.append(self.render_node(node, context))

  File "C:\omero_dist\lib\python\django\template\__init__.py", line 792, in render_node
    return node.render(context)

  File "C:\omero_dist\lib\python\django\template\defaulttags.py", line 370, in render
    url = reverse(self.view_name, args=args, kwargs=kwargs, current_app=context.current_app)

  File "C:\omero_dist\lib\python\django\core\urlresolvers.py", line 350, in reverse
    *args, **kwargs)))

  File "C:\omero_dist\lib\python\django\core\urlresolvers.py", line 275, in reverse
    possibilities = self.reverse_dict.getlist(lookup_view)

  File "C:\omero_dist\lib\python\django\core\urlresolvers.py", line 195, in _get_reverse_dict
    self._populate()

  File "C:\omero_dist\lib\python\django\core\urlresolvers.py", line 175, in _populate
    for name in pattern.reverse_dict:

  File "C:\omero_dist\lib\python\django\core\urlresolvers.py", line 195, in _get_reverse_dict
    self._populate()

  File "C:\omero_dist\lib\python\django\core\urlresolvers.py", line 164, in _populate
    for pattern in reversed(self.url_patterns):

  File "C:\omero_dist\lib\python\django\core\urlresolvers.py", line 245, in _get_url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

  File "C:\omero_dist\lib\python\django\core\urlresolvers.py", line 240, in _get_urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)

  File "C:\omero_dist\lib\python\django\utils\importlib.py", line 35, in import_module
    __import__(name)

  File "C:\omero_dist\lib\python\omeroweb\webemdb\urls.py", line 4, in <module>
    from omeroweb.webemdb import views

  File "C:\omero_dist\lib\python\omeroweb\webemdb\views.py", line 17, in <module>
    import omero.scripts

  File "C:\omero_dist\lib\python\omero\scripts.py", line 30, in <module>
    import omero.util.temp_files

  File "C:\omero_dist\lib\python\omero\util\temp_files.py", line 323, in <module>
    manager = TempFileManager()

  File "C:\omero_dist\lib\python\omero\util\temp_files.py", line 53, in __init__
    self.userdir = self.tmpdir() / ("%s_%s" % (self.prefix, self.username()))

  File "C:\omero_dist\lib\python\omero\util\temp_files.py", line 133, in tmpdir
    homeprop = get_user_dir()

  File "C:\omero_dist\lib\python\omero\util\__init__.py", line 662, in get_user_dir
    homeprop = shell.SHGetFolderPath(0, shellcon.CSIDL_APPDATA, 0, 0)

com_error: (-2147024894, 'The system cannot find the file specified.', None, None)

Changed 14 years ago by cxallan

Example install script for ISAPI WSGI on IIS

comment:3 Changed 14 years ago by cxallan

  • Cc jmoore added
  • Description modified (diff)

Adding Josh to the CC line so we can try and work out a solution for the temporary directory resolution when running under the "NETWORK SERVICE" IIS user.

comment:4 Changed 14 years ago by jburel

  • Sprint changed from 2010-10-28 (18) to 2010-11-11 (19)

Moved from sprint 2010-10-28 (18)

comment:5 Changed 14 years ago by jmoore

(In [8462]) Better exception handling for temp_files and get_user_dir under "NETWORK SERVICE" (See #3194)

comment:6 Changed 14 years ago by cxallan

With this Django bug (http://code.djangoproject.com/ticket/9084) we need to use the "cache" based session engine.

comment:7 Changed 14 years ago by cxallan

(In [8510]) Added OMERO.web IIS installation script (requires ISAPI-WSGI; http://code.google.com/p/isapi-wsgi/) (See #3194)

comment:8 Changed 14 years ago by cxallan

(In [8511]) Added a warning message for those who attempt to use the FastCGI workers on Windows. (See #3194)

comment:9 Changed 14 years ago by cxallan

C:\omero_dist>bin\omero config set omero.web.session_engine "django.contrib.sessions.backends.cache"

C:\omero_dist>bin\omero config set omero.web.cache_backend "file://C:/windows/temp/"

C:\omero_dist>cd lib\python

C:\omero_dist\lib\python>python omero_web_iis.py install
Configured Virtual Directory: /
Installation complete.

Changed 14 years ago by cxallan

IIS7 requirements on Windows Vista

comment:10 Changed 14 years ago by cxallan

(In [8512]) Fixing typo. (See #3194)

comment:11 Changed 14 years ago by cxallan

Warning text when trying to start the FastCGI workers:

C:\omero_dist>bin\omero web start
Starting OMERO.web...
WARNING: Unless you **really** know what you are doing you should NOT be
using bin\omero web start on Windows with FastCGI.

[OK]

comment:12 Changed 14 years ago by cxallan

  • Remaining Time changed from 1.5 to 0
  • Status changed from assigned to closed

comment:13 Changed 13 years ago by jmoore <josh@…>

(In [ff8615d52cde368c47b9485df01d36fd7e037505/ome.git] on branch dev_4_1_custom) Better exception handling for temp_files and get_user_dir under "NETWORK SERVICE" (See #3194)

git-svn-id: file:///home/svn/omero/trunk@8462 05709c45-44f0-0310-885b-81a1db45b4a6

comment:14 Changed 13 years ago by jmoore <josh@…>

(In [d6184553c7af11fb4d2fc46fd683102aaba9f090/ome.git] on branch develop) Catching unexpanded ~ in get_user_dir (See #3194, Fix #5583)

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.73282 sec.)

We're Hiring!