大型对象的IIS 7和PHP响应超时
我和我的同事在这个问题上被难住了好几个星期。我们有一个托管在IIS7环境中的PHP5.3Web应用程序。应用程序从SQL Server 2012数据库后端获取结果集,并将其作为JSON对象发送回客户端 当发出的请求导致对象大小超过约4MB时,就会出现问题。因此,每次响应超过此大小时,连接都会重置并导致错误。我已经通过使用Curl在本地服务器上确认了这一点,这非常有用。使用这些工具,当我在承载应用程序的IIS web服务器上运行请求时,它会成功地完成<4MB的响应,但无法完成>4MB的响应,并出现Curl(56)错误“Connection was reset” 一些补充说明:大型对象的IIS 7和PHP响应超时,php,iis,iis-7,windows-server-2008,fastcgi,Php,Iis,Iis 7,Windows Server 2008,Fastcgi,我和我的同事在这个问题上被难住了好几个星期。我们有一个托管在IIS7环境中的PHP5.3Web应用程序。应用程序从SQL Server 2012数据库后端获取结果集,并将其作为JSON对象发送回客户端 当发出的请求导致对象大小超过约4MB时,就会出现问题。因此,每次响应超过此大小时,连接都会重置并导致错误。我已经通过使用Curl在本地服务器上确认了这一点,这非常有用。使用这些工具,当我在承载应用程序的IIS web服务器上运行请求时,它会成功地完成4MB的响应,并出现Curl(56)错误“Con
- 直接针对数据库运行的查询只需大约20秒即可完成,因此数据库性能不是问题
- 在本地桌面开发环境中,我们在Apache之上运行Zend框架;但这一问题在任何一个国家都无法重现。在web服务器上失败的同一个>4MB响应对象在向本地Apache托管环境发出相同请求时成功完成
- 我已将允许的最大内容长度和URL长度从默认值增加到30MB李>
- PHP、FastCGI和IIS连接超时设置分别设置为5分钟。我已经运行了一些小的查询,这些查询需要一分钟才能完成,但只要小于4MB,就会返回有效的响应
- 事件查看器>Windows日志>应用程序/系统>查看PHP FastCGI工作进程是否崩溃
- IIS日志文件>确定失败HTTP请求的响应代码和状态
- 使用IIS中的“失败请求跟踪规则”获取失败请求的更多详细信息
- 最后,使用进程监视器(ProcMon),过滤它以仅显示应用程序池(w3wp.exe)和PHP/FastCGI进程,以检查给定时刻的PHP和IIS活动