4

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

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

在事件日志中,我看到一个应用程序错误,指出 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

4 回答 4

2

PyISAPIe 不是在 Windows 2008 上运行 Django 的好选择。在本文中您可以找到更好的解决方案:在 Windows 上运行 Django(带有性能测试)

于 2012-05-10T11:24:15.600 回答
1

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

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

于 2011-04-28T14:08:36.663 回答
1

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

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

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

于 2012-05-11T17:59:45.830 回答
0

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

于 2011-04-14T14:44:15.353 回答