Django + IIS +?

1 投票
1 回答
1955 浏览
提问于 2025-04-16 03:46

我需要在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 个回答

2

这是我在邮件列表上回复的内容,复制过来。无论是在这里还是那里,后续的问题都可以问。

http://groups.google.com/group/pyisapie/browse_thread/thread/af7dac9398336e67?hl=en_US


这个模块根本不被支持,Django团队也没有把它放进核心功能里,所以在尝试让PyISAPIe和Django一起工作时,不应该考虑这个模块。

如果你查看一下示例文件夹,会看到一些关于如何仅使用WSGI进行设置的信息,这是一种更好的长期解决方案。

撰写回答