如何在 PHP 和 IIS 7.5 上追踪 FastCGI 超时问题的来源?

如何在 PHP 和 IIS 7.5 上追踪 FastCGI 超时问题的来源?

我遇到了一个问题,希望各位专家能真正帮助我找到问题的根源。我遇到了随机页面超时(表现为 500 错误),但我找不到问题的根源。

PHP 版本:

PHP 5.5.12 (cli) (built: Apr 30 2014 11:20:11)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

IIS 版本:

Version 7.5.7600.16385

快速CGI:

C:\Users\lock>%windir%\system32\inetsrv\appcmd list config -section:system.webSe
rver/fastCgi
<system.webServer>
  <fastCgi>
    <application fullPath="C:\php5\php-cgi.exe" activityTimeout="700">
      <environmentVariables>
      </environmentVariables>
    </application>
  </fastCgi>
</system.webServer>

我已打开失败请求日志,并且在随机页面上获得以下信息:

C:\php5\php-cgi.exe - The FastCGI process exceeded configured activity timeout

耗时 700007 毫秒

昨晚,我创建了 2 个文件,它们只是在 MySQL 和 ODBC 上运行一个非常简单的查询,并且每分钟运行一次。今天早上检查时,唯一导致 FailedRequest 的文件是 ODBC,所以我确定问题出在连接到 ODBC 上。我创建了一个连接到相同服务器和驱动程序但不同数据库的新 ODBC 数据源,并且仍然出现超时,所以我不认为这是数据库本身的问题。我将尝试查看是该函数odbc_pconnect还是该函数odbc_exec超时。我能够通过自己的浏览器复制该问题(它挂起近 15 分钟后才生成 FailedRequest 日志),此时,我能够启动另一个浏览器并运行相同的页面而不会出现问题,所以我认为这与数据库上的表锁定或其他原因无关。

任何帮助都将不胜感激——我们真的不知道下一步该怎么做!

相关内容