2009-06-22: Bug Notice
There's a small bug that comes up when handling a passthrough - it's currently fixed but not released. I'm trying to get a more generalized application-to-interpreter mapping set up to make running apps (including multiple instances of Django) a lot easier with the default configuration.
This will either lead to another RC (again?!) or I will release 1.1.0 and fix any issues from there.
2009-06-16: Release 1.1.0-rc4
1.1.0 is almost ready for release. This will be the last RC with new features, and hopefully the last RC for 1.1.0 if it's free of bugs. The timeline on 1.1.0 is set at two weeks, so if you care about having stable code, find those bugs soon! (I know it's my job, but I rely on users for all the corner cases :-)
New function: DisableBuffer(): Disables any buffering set in the config, for the current request. Due to the nature of the buffering mechanism, this is the most configurable a buffer will get during a request. It's quite flexible however, especially when used with Header(Close=True).
New config parameter: StaticHeaders: Headers that are always sent. Default includes an X-Powered-By header, which I've wanted as a constant header for a long time.
Package renaming: Instead of having PyISAPIe import from the Http package, you can rename the DLL to make it import from another package. For example, renaming to PyISAPIe-HttpCustom.dll will make the extension load the Config and Isapi modules from the HttpCustom package.
No more multiple instances: Due to the amount of confusion and bugs caused, the extension can only be loaded once per IIS worker process. In addition, the extension has to be the first to load Python or it will complain. To get around this (not that there are many ISAPI extensions that load Python), make sure PyISAPIe is first in the extension list on the IIS configuration page.
The header system was completely overhauled in order to get away from needing the GIL while sending headers. Speed increase is between 2-10%, YMMV.
Changes: r164:167
1.1.0 Progress: milestone:1.1.0
2009-06-15
Please note that RC3 is improperly tagged as RC2. I'm still not used to the new version setup, so I missed it.
The SVN revision in PyISAPIe.Version will still reflect the proper release.
2009-06-12: Update
I was planning on supporting Python 3.x, but from the looks of it I'll need to take my time with it. I'm removing Python 3.0 support for the 1.1.0 final release and don't think I'll revisit it until Python 2.7/3.2 come around in about 12-18 months from now. I can say that there will be no unicode support when the time comes - all data sent and received from the extension will be raw bytes.
- Per-request configuration in 1.1.0 will be limited to buffer size.
- DefaultHeaders will be accompanied by StaticHeaders, which are always sent.
- 64-bit support: I can do it, but would it really matter? If so, voice your opinion on the list.
Release 1.1.0-rc3
The below issues are fixed and WSGI properly handles SCRIPT_NAME and PATH_INFO. All current features should be fast and working properly now, including Django with WSGI. Work on the pyisapie.py Django core handler is discontinued until further notice.
I'm hoping to get some documentation added here along with all the new features on the way.
Bug Notice
Release 1.1.0-rc2: It appears that somehow the request TLS data is sometimes mangled between requests for a given thread, and so the method for checking for passthrough recursion was faulty.
I experienced this while using the Django administration pages to submit forms. I debugged it to try to determine why this strange occurrence was coming up, but found nothing. At this point, I've added a better way to check for recursion. The bug seems pretty obscure, but if anyone has specific cases they can pin down it will be interesting to eventually find out why this happens.
The fix for this will most likely lead to an RC3 release - keep an eye out.
Also coming: WSGI-compliant SCRIPT_NAME and PATH_INFO (in SVN soon), working with Django.
Release 1.1.0-rc2
New feature: Support for wildcard handler passthrough
Python 2.5 support now included, and downloads are separated into versions and source. Python 2.6 users: This will ONLY work with Python 2.6.2, and not 2.6.1 on Vista/IIS7.
Please evaluate and direct some feedback to the list in order to make 1.1.0 stable and ready for a production environment.
The goal of this work is to have the fastest and most reliable server extension. I don't do much on Windows anymore, but this is still a great and interesting project so I'm sticking with it. And I feel the pain of anyone who has to use other, more (extremely) out-dated or inefficient ISAPI extensions.
Changes since last release: r152:157
Goals for 1.1.0: milestone:1.1.0