【问题标题】:Webservice on IIS with PHP as FastCGIIIS 上的 Web 服务,使用 PHP 作为 FastCGI
【发布时间】:2011-07-01 05:13:18
【问题描述】:

我使用 Zend_Soap 创建了 PHP Web 服务。在 apache 或带有 PHP 模块作为 CGI 的 IIS 7 上,一切正常。但是,如果我将 PHP 配置为 FastCGI,则对 Web 服务的每秒请求都会导致 400 BedRequest 响应。

我用wireshark嗅探了以下不良消息通信:

POST /JaR/soapTest/Service.php HTTP/1.1    
Content-Type: text/xml; charset=utf-8    
VsDebuggerCausalityData: uIDPoyo7FNjw0FZJlPkpvI/09dIAAAAA7yLlSSd4sEqSVBHiUG/JW55FahmIOYRAtQ0OUnO49ZoACQAA    
SOAPAction: "http://signia.cz/WebClientCEVO/1.0#QueryByBasicInformation"    
Host: w7pr-xampp-dev:8000    
Content-Length: 971    
Expect: 100-continue    


HTTP/1.1 400 Bad Request    
Content-Type: text/html; charset=us-ascii    
Server: Microsoft-HTTPAPI/2.0    
Date: Thu, 17 Feb 2011 14:03:46 GMT    
Connection: close    
Content-Length: 311    


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">    
<HTML><HEAD><TITLE>Bad Request</TITLE>    
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>    
<BODY><h2>Bad Request</h2>    
<hr><p>HTTP Error 400. The request is badly formed.</p>    
</BODY></HTML>

后来我在 iis 中创建了跟踪并发现,每次第一次调用都会成功,第二次失败会失败,这会导致 php-cgi.exe 进程重新启动。从 IIS 跟踪我得到以下信息:

MODULE_SET_RESPONSE_ERROR_STATUS 
ModuleName FastCgiModule 
Notification 128 
HttpStatus 500 
HttpReason Internal Server Error 
HttpSubStatus 0 
ErrorCode 2147942401 
ConfigExceptionInfo  
Notification EXECUTE_REQUEST_HANDLER 
ErrorCode Nesprávná funkce. (0x80070001) 

接下来,我尝试使用 fidler2 代理检查通信本身,但没有真正成功。当我在启用代理的情况下调用 Web 服务时,每次调用都会成功。 fidler2 还打印出警告,即我的 WS 宣布的响应长度与实际长度不同(在 apache 上长度很好)。

有人知道问题出在哪里吗?

【问题讨论】:

  • 您是否安装了 IIS 7 Fast CGI Admin Pack?

标签: php web-services iis-7 fastcgi


【解决方案1】:

检查您的 FastCGI 设置。

  1. 打开 IIS7 管理器
  2. 单击服务器并在功能视图中选择 FastCGI 设置
  3. 打开 php-cgi.exe 属性。
  4. 检查实例最大请求数,我的设置为 10000 并且您需要在 Collection 属性中添加一些内容。

集合对象名称 = PHP_FCGI_MAX_REQUESTS 集合对象值 = 10000

希望有效

【讨论】:

    猜你喜欢
    • 2014-12-04
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 2012-12-18
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多