IIS7 + PHP + HTTP POST = зависание?

Я установил PHP на машину с Windows 7 x64 с IIS7 через галерею веб-приложений Windows. Казалось, все прошло нормально, и простая страница phpinfo() работает так, как вы и предполагали. Однако всякий раз, когда я делаю запрос POST на страницу PHP, запрос просто зависает навсегда. См. очень простую тестовую страницу ниже... На ней даже нет динамического содержимого.

Я потратил слишком много времени на это. Любые идеи? Огромное спасибо!

страница.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>

person kodbuse    schedule 05.12.2010    source источник
comment
Я на самом деле не кишка Windows, но я, кажется, помню, что при использовании IIS (это была бы версия или 2 назад для Small Business Server) мне нужно было специально разрешить запрос POST на виртуальном хосте (или любое другое имя этого объекта находится под IIS). Но, думаю, я запускал его как модуль, а не как CGI, поэтому я точно не знаю, актуально ли это... Кроме того, вы можете получить лучшие ответы, если опубликуете это на Serverfault вместо SO.   -  person prodigitalson    schedule 05.12.2010


Ответы (3)


У меня была такая же проблема. Любой PHP POST на другую PHP-страницу зависал. В процессе восстановления файла web.config с нуля я обнаружил сообщение об ошибке, в котором предлагалось запустить AppPool в режиме управляемого конвейера в классическом режиме.

После внесения вышеуказанных изменений мой PHP-код работает должным образом.

person breese    schedule 15.03.2011
comment
То же самое. У меня был подкаталог внутри сайта ASP.NET, поэтому я просто преобразовал папку в приложение в IIS и создал для него новый пул приложений (в классическом режиме) - person John B; 15.11.2012
comment
Как это может быть сделано ? Нужен ли мне доступ к серверу? - person GorillaApe; 20.02.2015

После долгого устранения неполадок выяснилось, что эта строка в моем файле web.config вызывает проблему:

<trace enabled="true" localOnly="false" pageOutput="false" requestLimit="40" />
person kodbuse    schedule 05.12.2010

Это тоже сводило меня с ума, когда я пытался подключить некоторые страницы PHP Codeigniter к сайту ASP.NET. Настройка подпапки приложений PHP в качестве приложения и запуск в классическом пуле приложений ASP.NET сделали свое дело.

person Andy Clark    schedule 18.01.2013