A WSGI handler for ISAPI
ISAPI WSGI 0.4.1
ISAPI WSGI is licenced under the MIT License.
ISAPI WSGI is an implementation of WSGI (PEP 333) for running as an ISAPI extension under IIS. WSGI is considered as important standard for the future of web deployed Python code. There are implementations for CGI, mod_python, twisted, jython, etc. This was the first implementation for IIS/ISAPI.
ISAPI WSGI is currently dependent on Mark Hammond’s Python win32 isapi extension, available in the Python for Windows Extensions project.
Thanks to contributions from the communitity, there are two implementations. One is single-threaded; the other is multi-threaded.
It has been used to run simple python wsgi applications thru to applications developed using the Django, Pylons and TurboGears frameworks.
More details can be read on the project page.
Released versions are available from the project code site and PyPI. Just easy_install isapi-wsgi.
Download the latest version from the subversion repository or install it using easy_install isapi-wsgi-dev.
A mailing list is maintained using google groups.
Mark Rees mark dot john dot rees at gmail dot com
Make manipulation of ECB server variable APPL_MD_PATH case insensitive as string case appears to be IIS version/installation dependent.
Add serving from IIS root example - examples\demo_serve_from_root.py
Improved virtual directory support:
Application can now be deployed to any level of the IIS directory structure including the root.
SCRIPT_NAME is now set properly (to the app root if it’s a *-mapped script handler)
Added Python 3.0 compatibility
First release to PyPI
Set IIS REMOTE_ADDR env variable as part of WSGI environment.
Add optional size argument to wsgi.input’s readline(). This is not part of WSGI spec, but stdlib cgi.py now requires it.
Apply Chris Lambacher’s first set of patches:
ISAPISimpleHandler creates handler object per request.
ISAPIThreadPoolHandler where the wsgi requests are run on worker threads from the thread pool.
App now serves from VirtualDirectory root by default.
0.2 First beta release
Added qwip_test.py as an example for running quixote apps via QWIP.
Update README.txt to reflect new example.
Added basic error handling to cope with Extension Errors that are generated when a client disconnects before the extension i/o has finished.
Reset self.headers and self.headers_sent in HttpExtensionProc so wsgi states are correct if Extension Error occurred in previous call.
Change write method so it uses ecb.WriteClient rather than print redirection which was causing an Extension Error when running QWIP apps.