【问题标题】:IIS 7.5 crashes after a few requests (with Django + PyISAPIe)几次请求后 IIS 7.5 崩溃(使用 Django + PyISAPIe)
【发布时间】:2011-08-05 14:35:49
【问题描述】:

我设法使用 IIS 作为网络服务器(使用 PyISAPIe)运行 Django,并且在我的测试服务器上一切顺利,安装了 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

你能给我一些关于如何解决这个问题的提示吗?

更新:应用程序池高级设置中的“Rapid-Fail Protection”设置为5次失败;禁用它,一切正常。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 我检查过:内存使用正常(有很多空闲内存)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-15
          • 2017-04-09
          • 2011-10-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多