class wsgiref.handlers.IISCGIHandler
A specialized alternative to CGIHandler
, for use when deploying on Microsoft’s IIS web server, without having set the config allowPathInfo option (IIS>=7) or metabase allowPathInfoForScriptMappings (IIS<7).
By default, IIS gives a PATH_INFO
that duplicates the SCRIPT_NAME
at the front, causing problems for WSGI applications that wish to implement routing. This handler strips any such duplicated path.
IIS can be configured to pass the correct PATH_INFO
, but this causes another bug where PATH_TRANSLATED
is wrong. Luckily this variable is rarely used and is not guaranteed by WSGI. On IIS<7, though, the setting can only be made on a vhost level, affecting all other script mappings, many of which break when exposed to the PATH_TRANSLATED
bug. For this reason IIS<7 is almost never deployed with the fix. (Even IIS7 rarely uses it because there is still no UI for it.)
There is no way for CGI code to tell whether the option was set, so a separate handler class is provided. It is used in the same way as CGIHandler
, i.e., by calling IISCGIHandler().run(app)
, where app
is the WSGI application object you wish to invoke.
New in version 3.2.
Please login to continue.