Django + IIS +?
我需要在Windows上运行一个Django应用,使用的是IIS6或IIS7(是的,我现在不太清楚具体的要求)。
我做了什么:
我尝试在我的Windows 7(现在是IIS7)机器上设置一个工作环境。我按照django trac上的说明,使用了PyISAPIe。
结果是:
显然,我要么做错了什么,要么是我应该放入Django的core/handlers
中的pyisapie.py
处理程序与稳定版的Django(1.2)完全不兼容。至少有两件事情是它“做错了”的:
- 它试图使用过时的签名来调用请求开始和请求结束的信号——我已经修复了这些。
- 它的
http.HttpRequest
子类(PyISAPIeRequest)不符合HttpRequest接口——path_info
被遗漏了。我想,它应该是从环境中获取的,类似于WSGIRequest
的做法。所以我也把这个问题解决了。
我真的不知道还有什么会出问题(显然,它还有一个关于多部分表单的问题),坦白说,我不想接受一个可能在生产环境中随时崩溃的解决方案(不过,顺便说一下,我确实希望能让整个IIS+Django的组合正常工作)。
还有其他方法可以在Windows上运行Django吗?也许我可以使用一个独立的服务器,比如flup,并把IIS当作反向代理(不过,我不知道这是否可行)?我需要Windows+基本认证——这个应用应该使用远程用户认证后端,不过认证并不是必须使用IIS的唯一原因。
我不能使用其他机器,也不想安装一个完整的Web服务器(我技术上可以使用apache+mod_wsgi)。性能/高可用性不是问题,但有一点是肯定的——大文件上传必须正确处理(关于多部分表单的内容见上文)。
1 个回答
这是我在邮件列表上回复的内容,复制过来。无论是在这里还是那里,后续的问题都可以问。
http://groups.google.com/group/pyisapie/browse_thread/thread/af7dac9398336e67?hl=en_US
这个模块根本不被支持,Django团队也没有把它放进核心功能里,所以在尝试让PyISAPIe和Django一起工作时,不应该考虑这个模块。
如果你查看一下示例文件夹,会看到一些关于如何仅使用WSGI进行设置的信息,这是一种更好的长期解决方案。