.. Ross Patterson's Blog imported post, created by `$ ./bin/rfc822-to-post` on Mar 15, 2021. .. meta:: :description: iiswsgi provides a WSGI server providing a FCGI gateway to IIS and setup.py commands for distributing apps as WebPI packages :keywords: wsgi, iis, Python, Plone, Zope, webpi, msdeploy, fcgi, fastcgi .. post:: Oct 30, 2012 :tags: wsgi, iis, Python, Plone, Zope, webpi, msdeploy, fcgi, fastcgi :author: Ross Patterson :redirect: @@redirect-to-uuid/661809b21eaf4b888d49558921b2fe93 ################ WSGI apps on IIS ################ iiswsgi provides a WSGI server providing a FCGI gateway to IIS and setup.py commands for distributing apps as WebPI packages The `iiswsgi`_ module implements a FastCGI to `WSGI`_ gateway that is compatible with `IIS`_'s variation of the `FastCGI protocol`_. It also provides `distutils`_ commands for building, distributing and installing `Microsoft Web Deploy`_ (MSDeploy) packages through the `Web Platform Installer`_ (WebPI). The goals of the code in `iiswsgi`_ are to do the following for deploying WSGI apps on IIS: * make it open source as far as possible, right up to IIS * be Pythonic as far as possible, right up to the MSDeploy packaging * re-use our existing tool-chain for distributing packages * share the maintenance burden for a WSGI on Windows story across the community For the `Plone`_ project, it's always been simultaneously a necessity that we support a Windows deployment story and one of our biggest pain points. The Windows installers have always been very different from the other installers. They have had different layouts from our user and developer documentation and even from each other. They have never been maintained or supported by more than one entity, either a company or an individual, and as such have often and ultimately languished. And as for the poor individuals who have tackled the Windows installers, they have almost always burned out and can no longer provide any significant Windows support at all. This is not a healthy open source community dynamic. And yet there is wide consensus that it's not an option *not* to have a Windows deployment story. My hope is that by generalizing the IIS deployment architecture as a `WSGI server`_ and `distutils commands`_, it can be of use to the general Python `WSGI`_ world. I also hope that by doing things 'The Right Way', it will be something that will be clearer and easy to support and maintain. With those two together maybe we can solve the burnout issue by distributing the maintenance load. I'd very much appreciate any help to that end, particularly including feedback on how to get there. I don't care where the code lives and would be happy to see some of it merged back into the packages it derives from or moved into larger packages. So please let me know if you'd like to coordinate moving things around with me. Help Needed ----------- Any contributions are very welcome. Here are a few things I'm looking for in particular: * addressing `Known Issues`_ * IIS app name and Python dist name conventions * fostering community ownership * writing tests I'm particularly apologetic for the last one, I'm ashamed by the lack of tests. In my defense, this whole problem was such a fog for me when I started that I just needed to start writing things and poking around. Believe me this is not my usual MO, I almost always do TDD and beg your forgiveness. :-) I look forward to getting this going! .. _`iiswsgi`: https://github.com/rpatterson/iiswsgi .. _`WSGI`: http://wsgi.readthedocs.org/en/latest/ .. _`IIS`: http://www.iis.net .. _`FastCGI protocol`: http://www.fastcgi.com/drupal/ .. _`distutils`: http://docs.python.org/distutils/ .. _`Microsoft Web Deploy`: http://www.iis.net/downloads/microsoft/web-deploy .. _`Web Platform Installer`: http://www.microsoft.com/web/downloads/platform.aspx .. _`Plone`: http://plone.org .. _`WSGI server`: https://github.com/rpatterson/iiswsgi#iiswsgi-fcgi-gateway .. _`distutils commands`: https://github.com/rpatterson/iiswsgi#build-msdeploy-package .. _`Known Issues`: https://github.com/rpatterson/iiswsgi#known-issues .. update:: Oct 30, 2012 Imported from Plone on Mar 15, 2021. The date for this update is the last modified date in Plone.