几次请求后IIS 7.5崩溃(使用Django + PyISAPIe)

时间:2011-04-14 14:31:10

标签: django iis-7.5 isapi python-2.6 pyisapie

我设法使用IIS作为网络服务器运行Django(使用PyISAPIe)并且我的测试服务器中的一切顺利,安装了Windows 2008 Server R2 64位。

然后我在具有相同配置的另一台服务器上安装了该应用程序,它适用于第一个请求。然后当我重新加载页面时,我得到一个“服务不工作”页面。

在事件日志中,我看到一个应用程序错误,指出python26.dll存在一些问题:

Faulting application name: w3wp.exe
Faulting module name: python26.dll
Exception code: 0x40000015
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\Windows\system32\python26.dll

你能否就如何解决这个问题给我一些暗示?

更新:应用程序池的高级设置中的“快速失败保护”设置为5次失败;禁用它,一切运作良好。

所以,现在的问题是:如何检测导致失败的原因?

更新:我发现当有多个请求(img,css,js)时IIS崩溃了。为每个人调用PyISAPIe,一旦识别就将它们传递给静态服务器。 不知道为什么会这样......

4 个答案:

答案 0 :(得分:2)

PyISAPIe不是在Windows 2008上运行Django的好选择。在本文中,您可以找到更好的解决方案:Running Django on Windows (with performance tests)

答案 1 :(得分:1)

检查它应该在那里的事件日志。

您可能还会在httperror日志中找到更多详细信息(C:\ Windows \ System32 \ LogFiles \ HTTPERR)。

答案 2 :(得分:1)

  

我发现当有多个请求时IIS崩溃了(img,   css,js)。为每个人调用PyISAPIe,将它们传递给static   服务器一旦被识别不知道为什么会这样......

多个请求会导致两台计算机上的错误吗?当ISAPI应用程序中有多个请求时,每个请求都在其自己的线程中运行。 Python多线程模型是GLOBAL - 在该Python进程下运行的所有线程都是混合在一起并共享所有全局资源,因此您必须使用Python引擎序列化在所有应用程序和进程中运行的所有多线程代码。这是Python多线程处理的一个严重缺点,可能是您的问题的根源。请参阅http://docs.python.org/library/multiprocessing.html和其他来源。

但即使这只发生在一台机器而不是另一台机器上,这可能仍然是原因 - 它还可能依赖于许多其他环境变量 - 请求数量,机器资源,处理器等。

答案 3 :(得分:0)

检查机器上的内存使用情况(物理总量)。