<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>NWSGI Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Home</link><description>NWSGI Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=Home&amp;version=19</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;NWSGI is a .NET implementation of the Python WSGI specification for IronPython. It is implemented as an ASP.NET HttpHandler for use with IIS 6 and 7.&lt;br /&gt;
&lt;h2&gt;What is WSGI?&lt;/h2&gt;&lt;a href="http://www.wsgi.org/wsgi" class="externalLink"&gt;WSGI&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a Python standard for implementing the interface between web servers and web applications. See &lt;a href="http://www.python.org/dev/peps/pep-0333/" class="externalLink"&gt;PEP 333&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for all of the gory details.&lt;br /&gt;&lt;br /&gt;WSGI forms the foundation of modern Python web frameworks like &lt;a href="http://pylonshq.com/" class="externalLink"&gt;Pylons&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.cherrypy.org/" class="externalLink"&gt;CherryPy&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, and &lt;a href="http://www.djangoproject.com/" class="externalLink"&gt;Django&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Unfortunately, IronPython needs some more time to mature to be capable of running there frameworks, but progress is being made.&lt;br /&gt;
&lt;h2&gt;What is NWSGI?&lt;/h2&gt;NWSGI is an implementation of the Python WSGI spec (other implementations include &lt;a href="http://docs.python.org/lib/module-wsgiref.html" class="externalLink"&gt;wsgiref&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://code.google.com/p/modwsgi/" class="externalLink"&gt;mod_wsgi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). NWSGI is implemented in .NET as an ASP.NET 2.0 HttpHandler that embeds IronPython. &lt;br /&gt;
&lt;h2&gt;Why NWSGI?&lt;/h2&gt;The primary reason for NWSGI's existence is IIS7. IIS7 uses HttpHandlers as its native extension mechanism and web.config files for configuration. This makes deploying NWSGI on IIS7 very easy and opens up all of the IIS7 and ASP.NET fatures to Python web applications. NWSGI can be deployed to the GAC,making it possible to deploy a Python web application by simply creating a web.config with the proper information and pointing IIS7 at the directory.&lt;br /&gt;&lt;br /&gt;NWSGI allows the integration of Python applications with existing ASP.NET facilities such as caching, sessions, and user management. Python applications can co-exist with and exploit the infrastructure of existing ASP.NET applications and web farms.&lt;br /&gt;&lt;br /&gt;NWSGI includes a management UI extension for IIS 7 that enables graphical and command line administration of NWSGI through IIS 7's fantastic administration capabilities.&lt;br /&gt;
&lt;h3&gt;Documentation&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=NWSGI%201.0"&gt;NWSGI 1.0 Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=NWSGI%202.0"&gt;NWSGI 2.0 Documentation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Latest News&lt;/h3&gt;&lt;div class="rss"&gt;&lt;div class="accentbar"&gt;&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/09/nwsgi-20-release-candidate-1-released.html"&gt;NWSGI 2.0 Release Candidate 1 Released&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Monday, September 28, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/09/using-nwsgi-20-beta-2-with-ironpython.html"&gt;Using NWSGI 2.0 Beta 2 with IronPython 2.6 RC1&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Friday, September 25, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/08/nwsgi-20-beta-2-released.html"&gt;NWSGI 2.0 Beta 2 Released&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Saturday, August 15, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/07/nwsgi-20-removing-url-warts.html"&gt;NWSGI 2.0: Removing URL Warts&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Thursday, July 02, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/06/nwsgi-20-advanced-dispatching.html"&gt;NWSGI 2.0: Advanced Dispatching&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Tuesday, June 30, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="accentbar"&gt;&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:47:34 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091003044734P</guid></item><item><title>Updated Wiki: Tutorials</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=Tutorials&amp;version=15</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Tutorials&lt;/h1&gt;&lt;h2&gt;Prerequisites&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=8365" class="externalLink"&gt;IronPython 2.0&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18995"&gt;NWSGI 1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The NWSGI HelloWorld example (included with the release)&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Installation&lt;/h2&gt;Unzip the HelloWorld example to C:\inetpub\wwwroot\HelloWorld. Copy NWSGI.dll (skip if you used the installer) and IronPython.dll, IronPython.Modules.dll, Microsoft.Scripting.Core.dll, and Microsoft.Scripting.dll into the HelloWorld\bin folder. The HelloWorld folder should look like this:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;HelloWorld\
&lt;ul&gt;&lt;li&gt;bin\
&lt;ul&gt;&lt;li&gt;NWSGI.dll (optional)&lt;/li&gt;
&lt;li&gt;IronPython.dll&lt;/li&gt;
&lt;li&gt;IronPYthon.Modules.dll&lt;/li&gt;
&lt;li&gt;Microsoft.Scripting.Core.dll&lt;/li&gt;
&lt;li&gt;Microsoft.Scripting.dll&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;hello.wsgi&lt;/li&gt;
&lt;li&gt;Web.Classic.config&lt;/li&gt;
&lt;li&gt;Web.Integrated.config&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;If you are using IIS7 and the installer, copy Web.Integrated.config to Web.config. Otherwise, copy Web.Classic.config to Web.config.&lt;br /&gt;&lt;br /&gt;The next step is to point IIS at this folder. This can be done from the UI, but IIS7 has a very nice command line that is much simpler to demonstrate (&lt;b&gt;be sure to run this from an elevated command prompt&lt;/b&gt;):&lt;br /&gt;&lt;pre&gt;
   %systemroot%\system32\inetsrv\appcmd add app /site.name:&amp;quot;Default Web Site&amp;quot; /path:/hello /physicalPath:C:\inetpub\wwwroot\HelloWorld
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you are using IIS6, then you'll have to use the UI to create the application. Also, set a script mapping for *.wsgi that points to the ASP.NET ISAPI filter (e.g. copy the path from the .aspx mapping).&lt;br /&gt;&lt;br /&gt;Now visit &lt;a href="http://localhost/hello/hello.wsgi" class="externalLink"&gt;http://localhost/hello/hello.wsgi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. If it says &amp;quot;Hello, World!&amp;quot;, then it works!&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:45:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Tutorials 20091003044548P</guid></item><item><title>Updated Wiki: Installation</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=Installation&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Installation&lt;/h1&gt;Installation processes will vary from server to server and application to application. Currently, IIS6 (Server 2003) and IIS7 (Vista &amp;amp; Server 2008) are officially supported, although Cassini (Visual Studio development server) will work as well, seeing as that's what I use for development.&lt;br /&gt;&lt;br /&gt;Installation in general is quite simple:
&lt;ul&gt;&lt;li&gt;Create application directory&lt;/li&gt;
&lt;li&gt;Mark as application&lt;/li&gt;
&lt;li&gt;Copy files&lt;/li&gt;
&lt;li&gt;Edit web.config&lt;/li&gt;&lt;/ul&gt;
It's the details of those steps that vary from server to server.&lt;br /&gt;&lt;br /&gt;There are two supported scenarios: &lt;i&gt;IIS Classic&lt;/i&gt; and &lt;i&gt;IIS7 Integrated&lt;/i&gt;. IIS Classic is used when running on IIS 6, IIS 7 Classic pipeline mode, or IIS 7 without NWSGI installed. IIS7 integrated mode is available when NWSGI is installed on the server. IIS7 Integrated is the easiest scenario to deploy to as the NWSGI assembly does not need to be copied, the configuration is simpler, and it can be managed using the IIS 7 Management Console; however, it requires that the server administrator install NWSGI. IIS Classic requires the NWSGI assembly be included in the web site and a bit more configuration, with no management UI.&lt;br /&gt;&lt;br /&gt;NWSGI works in medium trust, with two caveats: debug must be &amp;quot;false&amp;quot; (the default), and many existing Python libraries won't work in medium trust.&lt;br /&gt;
&lt;h2&gt;Steps&lt;/h2&gt;First, create a directory that your application will be installed. This directory will hold at least the .wsgi file that runs the application and (possibly) the NWSGI and IronPython binaries. Copy the .wsgi file into this directory.&lt;br /&gt;&lt;br /&gt;Next, the web server needs to know that this is an application. This can be done from the UI for IIS6 and IIS7, but IIS7 has a very nice command line:&lt;br /&gt;&lt;pre&gt;
 appcmd add app /site.name:&amp;quot;Default Web Site&amp;quot; /path:/&amp;lt;apppath&amp;gt; /physicalPath:&amp;lt;diskpath&amp;gt;
&lt;/pre&gt;&lt;br /&gt;Replace &amp;lt;apppath&amp;gt; with the url you wish to use, and &amp;lt;diskpath&amp;gt; with the path to the folder created in step 1.&lt;br /&gt;&lt;br /&gt;For IIS Classic, create a bin folder and copy NWSGI.dll, Microsoft.Scripting.dll, Microsoft.Scripting.Core.dll, Microsoft.Scripting.ExtensionAttribute.dll, IronPython.dll, and IronPython.Modules.dll into it.&lt;br /&gt;&lt;br /&gt;For IIS7 Integrated mode, create a bin folder and copy Microsoft.Scripting.dll, Microsoft.Scripting.Core.dll, Microsoft.Scripting.ExtensionAttribute.dll, IronPython.dll, and IronPython.Modules.dll into it. Unfortunately the IronPython and Microsoft.Scripting assemblies are not installed in the GAC, so they must be copied with the app.&lt;br /&gt;&lt;br /&gt;If you are running IIS6, it needs a script mapping for *.wsgi that forwards it to the ASP.NET ISAPI dll.&lt;br /&gt;&lt;br /&gt;Finally, edit web.config to contain:&lt;br /&gt;IIS Classic:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xml&lt;/span&gt; &lt;span style="color:Red;"&gt;version&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;1.0&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;?&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.web&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;httpHandlers&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:Red;"&gt;verb&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;*&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;path&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;*.wsgi&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;NWSGI.WsgiHandler&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;httpHandlers&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.web&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;WsgiHandler&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;path&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;*.wsgi&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;verb&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;*&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
                &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;NWSGI.WsgiHandler, NWSGI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=41e64ddc1bf1fc86&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; 
                &lt;span style="color:Red;"&gt;resourceType&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Unspecified&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;validation&lt;/span&gt; &lt;span style="color:Red;"&gt;validateIntegratedModeConfiguration&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;false&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;IIS7 Integrated:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;WsgiHandler&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;path&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;*.wsgi&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;verb&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;*&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;
                &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;NWSGI.WsgiHandler, NWSGI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=41e64ddc1bf1fc86&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; 
                &lt;span style="color:Red;"&gt;resourceType&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Unspecified&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;NOTE: You must use the four part name for the type attribute if NWSGI is installed in the GAC.&lt;br /&gt;    &lt;br /&gt;You should now be able to hit http://localhost/&amp;lt;apppath&amp;gt;/&amp;lt;whatever&amp;gt;.wsgi/ and see your application.&lt;br /&gt;
&lt;h2&gt;Others&lt;/h2&gt;Most other ASP.NET servers (Cassini and Mono's xsp2) follow the IIS Classic instructions.&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:45:33 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Installation 20091003044533P</guid></item><item><title>Updated Wiki: Configuration</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=Configuration&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Configuration&lt;/h1&gt;&lt;h2&gt;Location&lt;/h2&gt;NWSGI can be configured using a custom configuration section in web.config. If NWSGI is installed on IIS7 server, the &amp;lt;wsgi/&amp;gt; section is inside the &amp;lt;system.webServer&amp;gt; element.&lt;br /&gt;&lt;br /&gt;For IIS CLassic deployments, the &amp;lt;wsgi /&amp;gt; element is inside the root &amp;lt;configuration&amp;gt; element. Add the following section to the top of your web.config:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configSections&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;section&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;wsgi&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;type&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;NWSGI.WsgiSection&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configSections&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Details&lt;/h2&gt;In either case, the &amp;lt;wsgi /&amp;gt; section has the following elements (with some sample values):&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgi&lt;/span&gt; &lt;span style="color:Red;"&gt;debug&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;true&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;callable&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;application&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;enableExtenions&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;false&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;wildcardModule&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;~/dispatch.wsgi&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;pythonPaths&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;path&lt;/span&gt; &lt;span style="color:Red;"&gt;path&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;C:\Users\Jeff\Documents\Repositories\PythonLibs\paste&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;pythonPaths&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgiEnviron&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;variable&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CustomKey&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;value&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CustomValue&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgiEnviron&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;osEnviron&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;variable&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;DJANGO_SETTINGS_MODULE&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;value&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;mysite.settings&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;osEnviron&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMappings&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMapping&lt;/span&gt; &lt;span style="color:Red;"&gt;scriptName&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;virtual.wsgi&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;physicalPath&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;C:\HelloWorld\hello.wsgi&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMappings&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgi&lt;/span&gt;&lt;span style="color:Blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;This allows you to manipulate NWSGI without editing the .wsgi file.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;debug [true|false] (default = false)
&lt;ul&gt;&lt;li&gt;Initialize IronPython in Debug mode (or not).&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;callable (default = &amp;quot;application&amp;quot;)
&lt;ul&gt;&lt;li&gt;The name of the application callable in the .wsgi file. This depends on the application being run; check it's documentation.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;enableExtensions &lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=false&amp;referringTitle=NWSGI%201.0"&gt;true&lt;/a&gt; (default = false)
&lt;ul&gt;&lt;li&gt;This enables NWSGI's extensions to the WSGI protocol. Specifically, setting it to &amp;quot;true&amp;quot; enables environ&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=%22nwsgi.context%22&amp;referringTitle=NWSGI%201.0"&gt;&amp;#34;nwsgi.context&amp;#34;&lt;/a&gt; and disables automatic response flushing (which allows the ASP.NET Session module to work properly).&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;wildcardModule (default = null)
&lt;ul&gt;&lt;li&gt;When set to a Pythoin module, NWSGI uses that module to process all requests. This is a simple way of removing the .wsgi file from URLs, but URL rewriting is strongly recommended instead.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;pythonPaths
&lt;ul&gt;&lt;li&gt;These are added to sys.path before the .wsgi script is run.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;wsgiEnviron
&lt;ul&gt;&lt;li&gt;These are added to the WSGI environ before the .wsgi script is run.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;osEnviron
&lt;ul&gt;&lt;li&gt;These are added to os.environ before the .wsgi script is run. &lt;/li&gt;
&lt;li&gt;NOTE: These are not available in medium-trust.&lt;/li&gt;
&lt;li&gt;IMPORTANT: These are process-wide, so if you must use them, make sure the app is in its own AppPool.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;scriptMappings
&lt;ul&gt;&lt;li&gt;Script mappings create a &amp;quot;virtual&amp;quot; .wsgi file that is aliased to a file that exists elsewhere in the filesystem. With a script mapping the .wsgi does not need to copied into the application's physical folder.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:45:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Configuration 20091003044501P</guid></item><item><title>Updated Wiki: NWSGI 1.0</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=NWSGI 1.0&amp;version=1</link><description>&lt;div class="wikidoc"&gt;This is the documentation for NWSGI 1.0, which works with IronPython 2.0.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Configuration&amp;referringTitle=Home"&gt;Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Installation&amp;referringTitle=Home"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:44:45 GMT</pubDate><guid isPermaLink="false">Updated Wiki: NWSGI 1.0 20091003044445P</guid></item><item><title>Updated Wiki: Home</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=Home&amp;version=18</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;NWSGI is a .NET implementation of the Python WSGI specification for IronPython. It is implemented as an ASP.NET HttpHandler for use with IIS 6 and 7.&lt;br /&gt;
&lt;h2&gt;What is WSGI?&lt;/h2&gt;&lt;a href="http://www.wsgi.org/wsgi" class="externalLink"&gt;WSGI&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a Python standard for implementing the interface between web servers and web applications. See &lt;a href="http://www.python.org/dev/peps/pep-0333/" class="externalLink"&gt;PEP 333&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for all of the gory details.&lt;br /&gt;&lt;br /&gt;WSGI forms the foundation of modern Python web frameworks like &lt;a href="http://pylonshq.com/" class="externalLink"&gt;Pylons&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.cherrypy.org/" class="externalLink"&gt;CherryPy&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, and &lt;a href="http://www.djangoproject.com/" class="externalLink"&gt;Django&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Unfortunately, IronPython needs some more time to mature to be capable of running there frameworks, but progress is being made.&lt;br /&gt;
&lt;h2&gt;What is NWSGI?&lt;/h2&gt;NWSGI is an implementation of the Python WSGI spec (other implementations include &lt;a href="http://docs.python.org/lib/module-wsgiref.html" class="externalLink"&gt;wsgiref&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://code.google.com/p/modwsgi/" class="externalLink"&gt;mod_wsgi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). NWSGI is implemented in .NET as an ASP.NET 2.0 HttpHandler that embeds IronPython. &lt;br /&gt;
&lt;h2&gt;Why NWSGI?&lt;/h2&gt;The primary reason for NWSGI's existence is IIS7. IIS7 uses HttpHandlers as its native extension mechanism and web.config files for configuration. This makes deploying NWSGI on IIS7 very easy and opens up all of the IIS7 and ASP.NET fatures to Python web applications. NWSGI can be deployed to the GAC,making it possible to deploy a Python web application by simply creating a web.config with the proper information and pointing IIS7 at the directory.&lt;br /&gt;&lt;br /&gt;NWSGI allows the integration of Python applications with existing ASP.NET facilities such as caching, sessions, and user management. Python applications can co-exist with and exploit the infrastructure of existing ASP.NET applications and web farms.&lt;br /&gt;&lt;br /&gt;NWSGI includes a management UI extension for IIS 7 that enables graphical and command line administration of NWSGI through IIS 7's fantastic administration capabilities.&lt;br /&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;&lt;h3&gt;NWSGI 1.0 Documentation&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=NWSGI%201.0"&gt;NWSGI 1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Configuration"&gt;Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Installation"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Tutorials"&gt;Tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;NWSGI 2.0 Documentation&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=NWSGI%202.0"&gt;NWSGI 2.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Latest News&lt;/h3&gt;&lt;div class="rss"&gt;&lt;div class="accentbar"&gt;&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/09/nwsgi-20-release-candidate-1-released.html"&gt;NWSGI 2.0 Release Candidate 1 Released&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Monday, September 28, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/09/using-nwsgi-20-beta-2-with-ironpython.html"&gt;Using NWSGI 2.0 Beta 2 with IronPython 2.6 RC1&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Friday, September 25, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/08/nwsgi-20-beta-2-released.html"&gt;NWSGI 2.0 Beta 2 Released&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Saturday, August 15, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/07/nwsgi-20-removing-url-warts.html"&gt;NWSGI 2.0: Removing URL Warts&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Thursday, July 02, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/06/nwsgi-20-advanced-dispatching.html"&gt;NWSGI 2.0: Advanced Dispatching&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Tuesday, June 30, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="accentbar"&gt;&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:43:51 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091003044351P</guid></item><item><title>Updated Wiki: Introduction</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=Introduction&amp;version=8</link><description>&lt;div class="wikidoc"&gt;This page is no longer in use.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:42:59 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Introduction 20091003044259P</guid></item><item><title>Updated Wiki: Home</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=Home&amp;version=17</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;NWSGI is a .NET implementation of the Python WSGI specification for IronPython. It is implemented as an ASP.NET HttpHandler for use with IIS 6 and 7.&lt;br /&gt;
&lt;h2&gt;What is WSGI?&lt;/h2&gt;&lt;a href="http://www.wsgi.org/wsgi" class="externalLink"&gt;WSGI&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a Python standard for implementing the interface between web servers and web applications. See &lt;a href="http://www.python.org/dev/peps/pep-0333/" class="externalLink"&gt;PEP 333&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for all of the gory details.&lt;br /&gt;&lt;br /&gt;WSGI forms the foundation of modern Python web frameworks like &lt;a href="http://pylonshq.com/" class="externalLink"&gt;Pylons&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.cherrypy.org/" class="externalLink"&gt;CherryPy&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, and &lt;a href="http://www.djangoproject.com/" class="externalLink"&gt;Django&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Unfortunately, IronPython needs some more time to mature to be capable of running there frameworks, but progress is being made.&lt;br /&gt;
&lt;h2&gt;What is NWSGI?&lt;/h2&gt;NWSGI is an implementation of the Python WSGI spec (other implementations include &lt;a href="http://docs.python.org/lib/module-wsgiref.html" class="externalLink"&gt;wsgiref&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://code.google.com/p/modwsgi/" class="externalLink"&gt;mod_wsgi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). NWSGI is implemented in .NET as an ASP.NET 2.0 HttpHandler that embeds IronPython. &lt;br /&gt;
&lt;h2&gt;Why NWSGI?&lt;/h2&gt;The primary reason for NWSGI's existence is IIS7. IIS7 uses HttpHandlers as its native extension mechanism and web.config files for configuration. This makes deploying NWSGI on IIS7 very easy and opens up all of the IIS7 and ASP.NET fatures to Python web applications. NWSGI can be deployed to the GAC,making it possible to deploy a Python web application by simply creating a web.config with the proper information and pointing IIS7 at the directory.&lt;br /&gt;&lt;br /&gt;NWSGI allows the integration of Python applications with existing ASP.NET facilities such as caching, sessions, and user management. Python applications can co-exist with and exploit the infrastructure of existing ASP.NET applications and web farms.&lt;br /&gt;&lt;br /&gt;NWSGI includes a management UI extension for IIS 7 that enables graphical and command line administration of NWSGI through IIS 7's fantastic administration capabilities.&lt;br /&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;&lt;h3&gt;NWSGI 1.0 Documentation&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Configuration"&gt;Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Installation"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Tutorials"&gt;Tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;NWSGI 2.0 Documentation&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=NWSGI%202.0"&gt;NWSGI 2.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Latest News&lt;/h3&gt;&lt;div class="rss"&gt;&lt;div class="accentbar"&gt;&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/09/nwsgi-20-release-candidate-1-released.html"&gt;NWSGI 2.0 Release Candidate 1 Released&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Monday, September 28, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/09/using-nwsgi-20-beta-2-with-ironpython.html"&gt;Using NWSGI 2.0 Beta 2 with IronPython 2.6 RC1&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Friday, September 25, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/08/nwsgi-20-beta-2-released.html"&gt;NWSGI 2.0 Beta 2 Released&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Saturday, August 15, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/07/nwsgi-20-removing-url-warts.html"&gt;NWSGI 2.0: Removing URL Warts&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Thursday, July 02, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/06/nwsgi-20-advanced-dispatching.html"&gt;NWSGI 2.0: Advanced Dispatching&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Tuesday, June 30, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="accentbar"&gt;&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:42:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091003044218P</guid></item><item><title>Updated Wiki: NWSGI 2.0</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=NWSGI 2.0&amp;version=1</link><description>&lt;div class="wikidoc"&gt;To view the documentation for NWSGI 2.0, see the readme file in the download package.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:41:04 GMT</pubDate><guid isPermaLink="false">Updated Wiki: NWSGI 2.0 20091003044104P</guid></item><item><title>Updated Wiki: Home</title><link>http://nwsgi.codeplex.com/Wiki/View.aspx?title=Home&amp;version=16</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;NWSGI is a .NET implementation of the Python WSGI specification for IronPython. It is implemented as an ASP.NET HttpHandler for use with IIS 6 and 7.&lt;br /&gt;
&lt;h2&gt;NWSGI 1.0 Documentation&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Configuration"&gt;Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Installation"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=Tutorials"&gt;Tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;NWSGI 2.0 Documentation&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nwsgi.codeplex.com/Wiki/View.aspx?title=NWSGI%202.0"&gt;NWSGI 2.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Latest News&lt;/h3&gt;&lt;div class="rss"&gt;&lt;div class="accentbar"&gt;&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/09/nwsgi-20-release-candidate-1-released.html"&gt;NWSGI 2.0 Release Candidate 1 Released&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Monday, September 28, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/09/using-nwsgi-20-beta-2-with-ironpython.html"&gt;Using NWSGI 2.0 Beta 2 with IronPython 2.6 RC1&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Friday, September 25, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/08/nwsgi-20-beta-2-released.html"&gt;NWSGI 2.0 Beta 2 Released&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Saturday, August 15, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/07/nwsgi-20-removing-url-warts.html"&gt;NWSGI 2.0: Removing URL Warts&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Thursday, July 02, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry"&gt;&lt;div class="title"&gt;&lt;a href="http://jdhardy.blogspot.com/2009/06/nwsgi-20-advanced-dispatching.html"&gt;NWSGI 2.0: Advanced Dispatching&lt;/a&gt;&lt;/div&gt;&lt;div class="moreinfo"&gt;&lt;span class="date"&gt;Tuesday, June 30, 2009&lt;/span&gt; &amp;nbsp;|&amp;nbsp; &lt;span class="source"&gt;From &lt;a target="_blank" href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="accentbar"&gt;&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 03 Oct 2009 16:40:16 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091003044016P</guid></item><item><title>Updated Wiki: Tutorials</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Tutorials&amp;version=14</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Tutorials
&lt;/h1&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=8365" class="externalLink"&gt;IronPython 2.0&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Release/ProjectReleases.aspx?ReleaseId=18995"&gt;NWSGI 1.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The NWSGI HelloWorld example (included with the release)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt;Unzip the HelloWorld example to C:\inetpub\wwwroot\HelloWorld. Copy NWSGI.dll (skip if you used the installer) and IronPython.dll, IronPython.Modules.dll, Microsoft.Scripting.Core.dll, and Microsoft.Scripting.dll into the HelloWorld\bin folder. The HelloWorld folder should look like this:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;HelloWorld\&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;bin\&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;NWSGI.dll (optional)&lt;/li&gt;&lt;li&gt;IronPython.dll&lt;/li&gt;&lt;li&gt;IronPYthon.Modules.dll&lt;/li&gt;&lt;li&gt;Microsoft.Scripting.Core.dll&lt;/li&gt;&lt;li&gt;Microsoft.Scripting.dll&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;hello.wsgi&lt;/li&gt;&lt;li&gt;Web.Classic.config&lt;/li&gt;&lt;li&gt;Web.Integrated.config&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;If you are using IIS7 and the installer, copy Web.Integrated.config to Web.config. Otherwise, copy Web.Classic.config to Web.config.&lt;br /&gt; &lt;br /&gt;The next step is to point IIS at this folder. This can be done from the UI, but IIS7 has a very nice command line that is much simpler to demonstrate (&lt;b&gt;be sure to run this from an elevated command prompt&lt;/b&gt;):&lt;br /&gt;&lt;pre&gt;
   %systemroot%\system32\inetsrv\appcmd add app /site.name:&amp;quot;Default Web Site&amp;quot; /path:/hello /physicalPath:C:\inetpub\wwwroot\HelloWorld
&lt;/pre&gt; &lt;br /&gt; &lt;br /&gt;If you are using IIS6, then you'll have to use the UI to create the application. Also, set a script mapping for *.wsgi that points to the ASP.NET ISAPI filter (e.g. copy the path from the .aspx mapping).&lt;br /&gt; &lt;br /&gt;Now visit &lt;a href="http://localhost/hello/hello.wsgi" class="externalLink"&gt;http://localhost/hello/hello.wsgi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. If it says &amp;quot;Hello, World!&amp;quot;, then it works!&lt;br /&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sun, 28 Dec 2008 00:35:13 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Tutorials 20081228123513A</guid></item><item><title>Updated Wiki: Installation</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Installation&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Installation
&lt;/h1&gt;Installation processes will vary from server to server and application to application. Currently, IIS6 (Server 2003) and IIS7 (Vista &amp;amp; Server 2008) are officially supported, although Cassini (Visual Studio development server) will work as well, seeing as that's what I use for development.&lt;br /&gt; &lt;br /&gt;Installation in general is quite simple:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Create application directory&lt;/li&gt;&lt;li&gt;Mark as application&lt;/li&gt;&lt;li&gt;Copy files&lt;/li&gt;&lt;li&gt;Edit web.config&lt;/li&gt;
&lt;/ul&gt;It's the details of those steps that vary from server to server.&lt;br /&gt; &lt;br /&gt;There are two supported scenarios: &lt;i&gt;IIS Classic&lt;/i&gt; and &lt;i&gt;IIS7 Integrated&lt;/i&gt;. IIS Classic is used when running on IIS 6, IIS 7 Classic pipeline mode, or IIS 7 without NWSGI installed. IIS7 integrated mode is available when NWSGI is installed on the server. IIS7 Integrated is the easiest scenario to deploy to as the NWSGI assembly does not need to be copied, the configuration is simpler, and it can be managed using the IIS 7 Management Console; however, it requires that the server administrator install NWSGI. IIS Classic requires the NWSGI assembly be included in the web site and a bit more configuration, with no management UI.&lt;br /&gt; &lt;br /&gt;NWSGI works in medium trust, with two caveats: debug must be &amp;quot;false&amp;quot; (the default), and many existing Python libraries won't work in medium trust.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Steps
&lt;/h2&gt;First, create a directory that your application will be installed. This directory will hold at least the .wsgi file that runs the application and (possibly) the NWSGI and IronPython binaries. Copy the .wsgi file into this directory.&lt;br /&gt; &lt;br /&gt;Next, the web server needs to know that this is an application. This can be done from the UI for IIS6 and IIS7, but IIS7 has a very nice command line:&lt;br /&gt;&lt;pre&gt;
 appcmd add app /site.name:&amp;quot;Default Web Site&amp;quot; /path:/&amp;lt;apppath&amp;gt; /physicalPath:&amp;lt;diskpath&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Replace &amp;lt;apppath&amp;gt; with the url you wish to use, and &amp;lt;diskpath&amp;gt; with the path to the folder created in step 1.&lt;br /&gt; &lt;br /&gt;For IIS Classic, create a bin folder and copy NWSGI.dll, Microsoft.Scripting.dll, Microsoft.Scripting.Core.dll, Microsoft.Scripting.ExtensionAttribute.dll, IronPython.dll, and IronPython.Modules.dll into it.&lt;br /&gt; &lt;br /&gt;For IIS7 Integrated mode, create a bin folder and copy Microsoft.Scripting.dll, Microsoft.Scripting.Core.dll, Microsoft.Scripting.ExtensionAttribute.dll, IronPython.dll, and IronPython.Modules.dll into it. Unfortunately the IronPython and Microsoft.Scripting assemblies are not installed in the GAC, so they must be copied with the app.&lt;br /&gt; &lt;br /&gt;If you are running IIS6, it needs a script mapping for *.wsgi that forwards it to the ASP.NET ISAPI dll.&lt;br /&gt; &lt;br /&gt;Finally, edit web.config to contain:&lt;br /&gt;IIS Classic:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
&lt;span style="color:#0000FF;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xml&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;version&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;?&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;httpHandlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;verb&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiHandler&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;httpHandlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;WsgiHandler&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;verb&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;
                &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiHandler, NWSGI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=41e64ddc1bf1fc86&amp;quot;&lt;/span&gt; 
                &lt;span style="color:#FF0000;"&gt;resourceType&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;Unspecified&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;validation&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;validateIntegratedModeConfiguration&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt; &lt;br /&gt;IIS7 Integrated:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;WsgiHandler&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;verb&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;
                &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiHandler, NWSGI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=41e64ddc1bf1fc86&amp;quot;&lt;/span&gt; 
                &lt;span style="color:#FF0000;"&gt;resourceType&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;Unspecified&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;NOTE: You must use the four part name for the type attribute if NWSGI is installed in the GAC.&lt;br /&gt;    &lt;br /&gt;You should now be able to hit http://localhost/&amp;lt;apppath&amp;gt;/&amp;lt;whatever&amp;gt;.wsgi/ and see your application.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Others
&lt;/h2&gt;Most other ASP.NET servers (Cassini and Mono's xsp2) follow the IIS Classic instructions.&lt;br /&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sun, 28 Dec 2008 00:29:33 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Installation 20081228122933A</guid></item><item><title>Updated Wiki: Installation</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Installation&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Installation
&lt;/h1&gt;Installation processes will vary from server to server and application to application. Currently, IIS6 (Server 2003) and IIS7 (Vista &amp;amp; Server 2008) are officially supported, although Cassini (Visual Studio development server) will work as well, seeing as that's what I use for development.&lt;br /&gt; &lt;br /&gt;Installation in general is quite simple:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Create application directory&lt;/li&gt;&lt;li&gt;Mark as application&lt;/li&gt;&lt;li&gt;Copy files&lt;/li&gt;&lt;li&gt;Edit web.config&lt;/li&gt;
&lt;/ul&gt;It's the details of those steps that vary from server to server.&lt;br /&gt; &lt;br /&gt;There are two supported scenarios: &lt;i&gt;IIS Classic&lt;/i&gt; and &lt;i&gt;IIS7 Integrated&lt;/i&gt;. IIS Classic is used when running on IIS 6, IIS 7 Classic pipeline mode, or IIS 7 without NWSGI installed. IIS7 integrated mode is available when NWSGI is installed on the server. IIS7 Integrated is the easiest scenario to deploy to as the NWSGI assembly does not need to be copied, the configuration is simpler, and it can be managed using the IIS 7 Management Console; however, it requires that the server administrator install NWSGI. IIS Classic requires the NWSGI assembly be included in the web site and a bit more configuration, with no management UI.&lt;br /&gt; &lt;br /&gt;NWSGI works in medium trust, with two caveats: debug must be &amp;quot;false&amp;quot; (the default), and many existing Python libraries won't work in medium trust.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Steps
&lt;/h2&gt;First, create a directory that your application will be installed. This directory will hold at least the .wsgi file that runs the application and (possibly) the NWSGI and IronPython binaries. Copy the .wsgi file into this directory.&lt;br /&gt; &lt;br /&gt;Next, the web server needs to know that this is an application. This can be done from the UI for IIS6 and IIS7, but IIS7 has a very nice command line:&lt;br /&gt;&lt;pre&gt;
 appcmd add app /site.name:&amp;quot;Default Web Site&amp;quot; /path:/&amp;lt;apppath&amp;gt; /physicalPath:&amp;lt;diskpath&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Replace &amp;lt;apppath&amp;gt; with the url you wish to use, and &amp;lt;diskpath&amp;gt; with the path to the folder created in step 1.&lt;br /&gt; &lt;br /&gt;For IIS Classic, create a bin folder and copy NWSGI.dll, Microsoft.Scripting.dll, Microsoft.Scripting.Core.dll, Microsoft.Scripting.ExtensionAttribute.dll, IronPython.dll, and IronPython.Modules.dll into it.&lt;br /&gt; &lt;br /&gt;For IIS7 Integrated mode, create a bin folder and copy Microsoft.Scripting.dll, Microsoft.Scripting.Core.dll, Microsoft.Scripting.ExtensionAttribute.dll, IronPython.dll, and IronPython.Modules.dll into it. Unfortunately the IronPython and Microsoft.Scripting assemblies are not installed in the GAC, so they must be copied with the app.&lt;br /&gt; &lt;br /&gt;If you are running IIS6, it needs a script mapping for *.wsgi that forwards it to the ASP.NET ISAPI dll.&lt;br /&gt; &lt;br /&gt;Finally, edit web.config to contain:&lt;br /&gt;IIS Classic:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
&lt;span style="color:#0000FF;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#A31515;"&gt;xml&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;version&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;?&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;httpHandlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;verb&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiHandler&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;httpHandlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;WsgiHandler&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;verb&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiHandler, NWSGI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=41e64ddc1bf1fc86&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;resourceType&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;Unspecified&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;validation&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;validateIntegratedModeConfiguration&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt; &lt;br /&gt;IIS7 Integrated:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;WsgiHandler&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;verb&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiHandler, NWSGI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=41e64ddc1bf1fc86&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;resourceType&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;Unspecified&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;NOTE: You must use the four part name for the type attribute if NWSGI is installed in the GAC.&lt;br /&gt;    &lt;br /&gt;You should now be able to hit http://localhost/&amp;lt;apppath&amp;gt;/&amp;lt;whatever&amp;gt;.wsgi/ and see your application.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Others
&lt;/h2&gt;Most other ASP.NET servers (Cassini and Mono's xsp2) follow the IIS Classic instructions.&lt;br /&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sun, 28 Dec 2008 00:28:14 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Installation 20081228122814A</guid></item><item><title>Updated Wiki: Configuration</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Configuration&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Configuration
&lt;/h1&gt;&lt;h2&gt;
Location
&lt;/h2&gt;NWSGI can be configured using a custom configuration section in web.config. If NWSGI is installed on IIS7 server, the &amp;lt;wsgi/&amp;gt; section is inside the &amp;lt;system.webServer&amp;gt; element.&lt;br /&gt; &lt;br /&gt;For IIS CLassic deployments, the &amp;lt;wsgi /&amp;gt; element is inside the root &amp;lt;configuration&amp;gt; element. Add the following section to the top of your web.config:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configSections&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;section&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiSection&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configSections&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt; &lt;br /&gt;&lt;h2&gt;
Details
&lt;/h2&gt;In either case, the &amp;lt;wsgi /&amp;gt; section has the following elements (with some sample values):&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgi&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;debug&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;callable&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;application&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;enableExtenions&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;wildcardModule&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;~/dispatch.wsgi&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;pythonPaths&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;path&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;C:\Users\Jeff\Documents\Repositories\PythonLibs\paste&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;pythonPaths&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgiEnviron&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;variable&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;CustomKey&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;value&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;CustomValue&amp;quot;&lt;/span&gt;  &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgiEnviron&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;osEnviron&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;variable&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;DJANGO_SETTINGS_MODULE&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;value&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;mysite.settings&amp;quot;&lt;/span&gt;  &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;osEnviron&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMappings&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMapping&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;scriptName&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;virtual.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;physicalPath&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;C:\HelloWorld\hello.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMappings&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgi&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt; &lt;br /&gt;This allows you to manipulate NWSGI without editing the .wsgi file.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;debug [true|false] (default = false)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Initialize IronPython in Debug mode (or not).&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;callable (default = &amp;quot;application&amp;quot;)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The name of the application callable in the .wsgi file. This depends on the application being run; check it's documentation.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;enableExtensions &lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=false&amp;amp;referringTitle=Configuration"&gt;true&lt;/a&gt; (default = false)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;This enables NWSGI's extensions to the WSGI protocol. Specifically, setting it to &amp;quot;true&amp;quot; enables environ&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=%22nwsgi.context%22&amp;amp;referringTitle=Configuration"&gt;&amp;quot;nwsgi.context&amp;quot;&lt;/a&gt; and disables automatic response flushing (which allows the ASP.NET Session module to work properly).&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;wildcardModule (default = null)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;When set to a Pythoin module, NWSGI uses that module to process all requests. This is a simple way of removing the .wsgi file from URLs, but URL rewriting is strongly recommended instead.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;pythonPaths&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;These are added to sys.path before the .wsgi script is run.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;wsgiEnviron&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;These are added to the WSGI environ before the .wsgi script is run.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;osEnviron&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;These are added to os.environ before the .wsgi script is run. &lt;/li&gt;&lt;li&gt;NOTE: These are not available in medium-trust.&lt;/li&gt;&lt;li&gt;IMPORTANT: These are process-wide, so if you must use them, make sure the app is in its own AppPool.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;scriptMappings&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Script mappings create a &amp;quot;virtual&amp;quot; .wsgi file that is aliased to a file that exists elsewhere in the filesystem. With a script mapping the .wsgi does not need to copied into the application's physical folder.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sun, 28 Dec 2008 00:23:54 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Configuration 20081228122354A</guid></item><item><title>Updated Wiki: Introduction</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Introduction&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Introduction
&lt;/h1&gt;&lt;h2&gt;
What is WSGI?
&lt;/h2&gt;&lt;a href="http://www.wsgi.org/wsgi" class="externalLink"&gt;WSGI&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a Python standard for implementing the interface between web servers and web applications. See &lt;a href="http://www.python.org/dev/peps/pep-0333/" class="externalLink"&gt;PEP 333&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for all of the gory details.&lt;br /&gt; &lt;br /&gt;WSGI forms the foundation of modern Python web frameworks like &lt;a href="http://pylonshq.com/" class="externalLink"&gt;Pylons&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.cherrypy.org/" class="externalLink"&gt;CherryPy&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, and &lt;a href="http://www.djangoproject.com/" class="externalLink"&gt;Django&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Unfortunately, IronPython needs some more time to mature to be capable of running there frameworks, but progress is being made.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
What is NWSGI?
&lt;/h2&gt;NWSGI is an implementation of the Python WSGI spec (other implementations include &lt;a href="http://docs.python.org/lib/module-wsgiref.html" class="externalLink"&gt;wsgiref&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://code.google.com/p/modwsgi/" class="externalLink"&gt;mod_wsgi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). NWSGI is implemented in .NET as an ASP.NET 2.0 HttpHandler that embeds IronPython. &lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Why NWSGI?
&lt;/h2&gt;The primary reason for NWSGI's existence is IIS7. IIS7 uses HttpHandlers as its native extension mechanism and web.config files for configuration. This makes deploying NWSGI on IIS7 very easy and opens up all of the IIS7 and ASP.NET fatures to Python web applications. NWSGI can be deployed to the GAC,making it possible to deploy a Python web application by simply creating a web.config with the proper information and pointing IIS7 at the directory.&lt;br /&gt; &lt;br /&gt;NWSGI allows the integration of Python applications with existing ASP.NET facilities such as caching, sessions, and user management. Python applications can co-exist with and exploit the infrastructure of existing ASP.NET applications and web farms.&lt;br /&gt; &lt;br /&gt;NWSGI includes a management UI extension for IIS 7 that enables graphical and command line administration of NWSGI through IIS 7's fantastic administration capabilities.&lt;br /&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sun, 28 Dec 2008 00:18:47 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Introduction 20081228121847A</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Home&amp;version=15</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Project Description
&lt;/h1&gt;NWSGI is a .NET implementation of the Python WSGI specification using IronPython. It is implemented as an ASP.NET HttpHandler. The main goal is to provide an easy path for running Python web applications&amp;#47;frameworks &amp;#40;such as Django, Trac, etc.&amp;#41; on IIS7.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Introduction&amp;amp;referringTitle=Home"&gt;Introduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Configuration&amp;amp;referringTitle=Home"&gt;Configuration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Installation&amp;amp;referringTitle=Home"&gt;Installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Tutorials&amp;amp;referringTitle=Home"&gt;Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
Latest News
&lt;/h3&gt;&lt;div class="rss"&gt;
	&lt;div class="accentbar"&gt;
		&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;
	&lt;/div&gt;&lt;div class="entry"&gt;
		&lt;div class="title"&gt;
			&lt;a href="http://jdhardy.blogspot.com/2008/11/nwsgi-on-window-azure.html"&gt;NWSGI on Window Azure&lt;/a&gt;
		&lt;/div&gt;&lt;div class="moreinfo"&gt;
			&lt;span class="date"&gt;Friday, November 21, 2008&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss" target="_blank"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;
		&lt;/div&gt;
	&lt;/div&gt;&lt;div class="entry"&gt;
		&lt;div class="title"&gt;
			&lt;a href="http://jdhardy.blogspot.com/2008/11/nwsgi-06-released.html"&gt;NWSGI 0.6 Released&lt;/a&gt;
		&lt;/div&gt;&lt;div class="moreinfo"&gt;
			&lt;span class="date"&gt;Sunday, November 02, 2008&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss" target="_blank"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;
		&lt;/div&gt;
	&lt;/div&gt;&lt;div class="entry"&gt;
		&lt;div class="title"&gt;
			&lt;a href="http://jdhardy.blogspot.com/2008/09/nwsgi-05-released.html"&gt;NWSGI 0.5 Released&lt;/a&gt;
		&lt;/div&gt;&lt;div class="moreinfo"&gt;
			&lt;span class="date"&gt;Tuesday, September 23, 2008&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss" target="_blank"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;
		&lt;/div&gt;
	&lt;/div&gt;&lt;div class="entry"&gt;
		&lt;div class="title"&gt;
			&lt;a href="http://jdhardy.blogspot.com/2008/08/nwsgi-04-released.html"&gt;NWSGI 0.4 Released&lt;/a&gt;
		&lt;/div&gt;&lt;div class="moreinfo"&gt;
			&lt;span class="date"&gt;Friday, August 08, 2008&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://jdhardy.blogspot.com/feeds/posts/default/-/NWSGI?alt=rss" target="_blank"&gt;Jeff Hardy's Blog&lt;/a&gt;&lt;/span&gt;
		&lt;/div&gt;
	&lt;/div&gt;&lt;div class="accentbar"&gt;
		&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;Jeff Hardy's Blog News Feed&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;
	&lt;/div&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 29 Nov 2008 01:28:38 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20081129012838A</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Home&amp;version=14</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Project Description
&lt;/h1&gt;NWSGI is a .NET implementation of the Python WSGI specification using IronPython. It is implemented as an ASP.NET HttpHandler. The main goal is to provide an easy path for running Python web applications&amp;#47;frameworks &amp;#40;such as Django, Trac, etc.&amp;#41; on IIS7.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Introduction&amp;amp;referringTitle=Home"&gt;Introduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Configuration&amp;amp;referringTitle=Home"&gt;Configuration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Installation&amp;amp;referringTitle=Home"&gt;Installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Tutorials&amp;amp;referringTitle=Home"&gt;Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
Latest News
&lt;/h3&gt;&lt;div class="error"&gt;
Error rendering macro: rss
&amp;nbsp;&amp;nbsp;&amp;nbsp;Invalid parameter: url: no rss channel could be found

&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Sat, 29 Nov 2008 01:27:55 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20081129012755A</guid></item><item><title>Updated Wiki: Installation</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Installation&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Installation
&lt;/h1&gt;Installation processes will vary from server to server and application to application. Currently, IIS6 (Server 2003) and IIS7 (Vista &amp;amp; Server 2008) are officially supported, although Cassini (Visual Studio development server) will work as well, seeing as that's what I use for development.&lt;br /&gt; &lt;br /&gt;Installation in general is quite simple:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Create application directory&lt;/li&gt;&lt;li&gt;Mark as application&lt;/li&gt;&lt;li&gt;Copy files&lt;/li&gt;&lt;li&gt;Edit web.config&lt;/li&gt;
&lt;/ul&gt;It's the details of those steps that vary from server to server.&lt;br /&gt; &lt;br /&gt;There are three supported scenarios: &lt;b&gt;IIS6&lt;/b&gt;, &lt;b&gt;IIS7 xcopy&lt;/b&gt;, and &lt;b&gt;IIS7 installed&lt;/b&gt;. IIS7 installed is the easiest scenario to deploy to, but requires that the server administrator install NWSGI. The other scenarios allow you to xcopy deploy to a server. NWSGI currently requires full trust, but that will hopefully be scaled back to medium trust in the future.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Steps
&lt;/h2&gt;First, create a directory that your application will be installed. This directory will hold at least the .wsgi file that runs the application and (possibly) the NWSGI and IronPython binaries. Copy the .wsgi file into this directory.&lt;br /&gt; &lt;br /&gt;Next, the web server needs to know that this is an application. This can be done from the UI for IIS6 and IIS7, but IIS7 has a very nice command line:&lt;br /&gt;&lt;pre&gt;
 appcmd add app /site.name:&amp;quot;Default Web Site&amp;quot; /path:/&amp;lt;apppath&amp;gt; /physicalPath:&amp;lt;diskpath&amp;gt;
&lt;/pre&gt; &lt;br /&gt;Replace &amp;lt;apppath&amp;gt; with the url you wish to use, and &amp;lt;diskpath&amp;gt; with the path to the folder created in step 1.&lt;br /&gt; &lt;br /&gt;For IIS6 and IIS7 xcopy, create a bin folder and copy NWSGI.dll, Microsoft.Scripting.dll, Microsoft.Scripting.Core.dll, Microsoft.Scripting.ExtensionAttribute.dll, IronPython.dll, and IronPython.Modules.dll into it. If NWSGI is installed on the server, then only the IronPython and Microsoft.Scripting assemblies need to copied into ~/bin.&lt;br /&gt; &lt;br /&gt;If you are running IIS6, it needs a script mapping for *.wsgi that forwards it to the ASP.NET ISAPI dll.&lt;br /&gt; &lt;br /&gt;Finally, edit web.config to contain:&lt;br /&gt;IIS6:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;httpHandlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;verb&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiHandler&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;httpHandlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.web&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt; &lt;br /&gt;IIS7:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;add&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;WsgiHandler&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;verb&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiHandler, NWSGI, Version=0.6.0.0, Culture=neutral, PublicKeyToken=41e64ddc1bf1fc86&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;resourceType&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;Unspecified&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;handlers&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;NOTE: You must use the four part name for the type attribute if NWSGI is installed in the GAC.&lt;br /&gt;    &lt;br /&gt;You should now be able to hit http://localhost/&amp;lt;apppath&amp;gt;/&amp;lt;whatever&amp;gt;.wsgi/ and see your application.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Others
&lt;/h2&gt;Most other ASP.NET servers (Cassini and Mono's xsp2) follow the IIS6 instructions.&lt;br /&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Wed, 05 Nov 2008 00:16:57 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Installation 20081105121657A</guid></item><item><title>Updated Wiki: Configuration</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Configuration&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Configuration
&lt;/h1&gt;NWSGI can be configured using a custom configuration section in web.config. If NWSGI is installed on IIS7 server, the &amp;lt;wsgi/&amp;gt; section is inside the &amp;lt;system.webServer&amp;gt; element.&lt;br /&gt; &lt;br /&gt;For IIS6 and IIS7 xcopy deployments, the &amp;lt;wsgi /&amp;gt; element is inside the root &amp;lt;configuration&amp;gt; element. Add the following section to the top of your web.config:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configSections&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;section&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;NWSGI.WsgiSection&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;configSections&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt; &lt;br /&gt;In either case, the &amp;lt;wsgi /&amp;gt; section has the following elements:&lt;br /&gt;&lt;div style="color:#000000;background-color:#FFFFFF;"&gt;&lt;pre&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgi&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;debug&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;callable&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;application&amp;quot;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;pythonPaths&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;path&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;path&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;C:\Users\Jeff\Documents\Repositories\PythonLibs\paste&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;pythonPaths&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgiEnviron&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;variable&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;CustomKey&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;value&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;CustomValue&amp;quot;&lt;/span&gt;  &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgiEnviron&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;osEnviron&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;variable&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;DJANGO_SETTINGS_MODULE&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;value&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;mysite.settings&amp;quot;&lt;/span&gt;  &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;osEnviron&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMappings&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
            &lt;span style="color:#0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMapping&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;scriptName&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;virtual.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#FF0000;"&gt;physicalPath&lt;/span&gt;=&lt;span style="color:#0000FF;"&gt;&amp;quot;C:\HelloWorld\hello.wsgi&amp;quot;&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;scriptMappings&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#A31515;"&gt;wsgi&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt; &lt;br /&gt;This allows you to manipulate NWSGI without necessarily editing the .wsgi file.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;debug [true|false] (default = false)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Initialize IronPython in Debug mode (or not).&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;callable (default = &amp;quot;application&amp;quot;)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The name of the application callable in the .wsgi file. This depends on the application being run; check it's documentation.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;pythonPaths&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;These are added to sys.path before the .wsgi script is run.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;wsgiEnviron&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;These are added to the WSGI environ before the .wsgi script is run.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;osEnviron&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;These are added to os.environ before the .wsgi script is run. &lt;/li&gt;&lt;li&gt;NOTE: These are not available in medium-trust.&lt;/li&gt;&lt;li&gt;IMPORTANT: These are process-wide, so if you must use them, make sure the app is in its own AppPool.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;scriptMappings&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Script mappings create a &amp;quot;virtual&amp;quot; .wsgi file that is aliased to a file that exists elsewhere in the filesystem. With a script mapping the .wsgi does not need to copied into the application's physical folder.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Wed, 05 Nov 2008 00:09:46 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Configuration 20081105120946A</guid></item><item><title>Updated Wiki: Introduction</title><link>http://www.codeplex.com/NWSGI/Wiki/View.aspx?title=Introduction&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Introduction
&lt;/h1&gt;&lt;h2&gt;
What is WSGI?
&lt;/h2&gt;&lt;a href="http://www.wsgi.org/wsgi" class="externalLink"&gt;WSGI&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a Python standard for implementing the interface between web servers and web applications. See &lt;a href="http://www.python.org/dev/peps/pep-0333/" class="externalLink"&gt;PEP 333&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for all of the gory details.&lt;br /&gt; &lt;br /&gt;WSGI forms the foundation of modern Python web frameworks like &lt;a href="http://pylonshq.com/" class="externalLink"&gt;Pylons&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.cherrypy.org/" class="externalLink"&gt;CherryPy&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, and &lt;a href="http://www.djangoproject.com/" class="externalLink"&gt;Django&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Unfortunately, IronPython needs some more time to mature to be capable of running there frameworks, but progress is being made.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
What is NWSGI?
&lt;/h2&gt;NWSGI is an implementation of the Python WSGI spec (other implementations include &lt;a href="http://docs.python.org/lib/module-wsgiref.html" class="externalLink"&gt;wsgiref&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://code.google.com/p/modwsgi/" class="externalLink"&gt;mod_wsgi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). NWSGI is implemented in .NET as an ASP.NET 2.0 HttpHandler that embeds IronPython.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Why NWSGI?
&lt;/h2&gt;The primary reason for NWSGI's existence is IIS7. IIS7 uses HttpHandlers as its native extension mechanism, as well as web.config files for configuration. This makes deploying NWSGI on IIS7 very easy and opens up all of the IIS7 and ASP.NET fatures to Python web applications. NWSGI can be deployed to the GAC,making it possible to deploy a Python web application by simply creating a web.config with the proper information and pointing IIS7 at the directory.&lt;br /&gt; &lt;br /&gt;IIS6 is supported, in a limited fashion. IIS7 is the platform of choice, however.&lt;br /&gt;
&lt;/div&gt;</description><author>jdhardy</author><pubDate>Wed, 05 Nov 2008 00:02:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Introduction 20081105120224A</guid></item></channel></rss>