在IIS6上运行Django需要PyISAPIe吗?
看起来,要在IIS6上运行Django,大家都得用PyISAPIe。这对我们来说有点麻烦,因为每个PyISAPIe/Django实例都需要单独的应用池,这不是我们想要的。
有没有人能给点建议或者分享一下他们的经验(特别是在共享Windows主机环境下)?
2 个回答
1
Django在任何WSGI环境下都能很好地运行(就像其他现代的Python网页应用框架一样)。在IIS上运行WSGI有几种方法,比如可以查看这个链接:http://code.google.com/p/isapi-wsgi/。
3
无论你使用什么扩展,都需要单独的应用程序池。这是因为应用程序池会把处理程序的DLL文件分开到不同的w3wp.exe进程中。你可能会想,为什么这样做是必要的:
看看Django的模块设置:os.environ["DJANGO_SETTINGS_MODULE"]
。这代表了进程的环境,所以如果你为一个ISAPI处理程序更改了这个设置,然后在同一个应用程序池中又为另一个处理程序更改,它们都会指向新的DJANGO_SETTINGS_MODULE
。
其实这样做没有什么特别的理由,所以你可以试着说服Django的开发者,他们其实不需要这样做 :)
虽然有一些方法可以绕过这个问题,但没有什么比使用单独的应用程序池更简单有效。
不幸的是,isapi-wsgi并不能解决Django的问题,我建议你继续使用PyISAPIe(顺便说一下:我是开发者! ;)