2010-12-05 73 views
5

我通过Windows Web App Gallery在安装有IIS7的Windows 7 x64机器上安装了PHP。一切似乎都很顺利,一个简单的phpinfo()页面就像你想象的那样工作。但是,每当我对PHP页面执行POST请求时,请求都会永久挂起。看到下面非常简单的测试页面......它甚至没有任何动态内容。IIS7 + PHP + HTTP POST =挂?

我在这上面浪费了太多时间。有任何想法吗?谢谢一堆!

page.php文件:

<html> 
<body> 
    <form action="page.php" method="post"> 
    <textarea name="apa"></textarea> 
    <input type="submit" value="ok" /> 
    </form> 
</body> 
</html> 

处理程序映射:

<handlers> 
     <add name="PHP_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\php-cgi.exe" resourceType="Either" requireAccess="Script" /> 
</handlers> 
+2

我不是一个真正的Windows肠道,但我似乎记得,当使用IIS(这将是一个版本或2前在Small Business Server下)我不得不在虚拟主机(或任何名称该实体在IIS下)。但我正在将它作为一个模块运行,而不是像CGI那样,所以我不确定它是否与之相关......另外,如果您在Serverfault上而不是SO上发布,您可能会得到更好的响应。 – prodigitalson 2010-12-05 06:50:43

回答

2

很多故障排除之后,事实证明,这条线在我的web.config文件导致了问题:

<trace enabled="true" localOnly="false" pageOutput="false" requestLimit="40" /> 
3

我有这个相同的问题。任何PHP POST到另一个PHP页面都被挂起。在重新构建web.config文件的过程中,我发现了一条错误消息,提示在Classic模式下运行AppPool 管理流水线模式

完成上述更改后,我的PHP代码按预期工作。

+1

同样在这里。我在ASP.NET网站中有一个子目录,所以我只是将该文件夹转换为IIS中的应用程序,并为其创建了一个新的应用程序池(在经典模式下) – 2012-11-15 13:57:30

0

这也推动了我的疯狂,试着将某些PHP Codeigniter页面粘贴到ASP.NET网站上。将PHP应用程序子文件夹配置为应用程序并在经典ASP.NET应用程序池中运行的技巧。