PHP ignore_user_abort未在IIS 10上工作

PHP ignore_user_abort未在IIS 10上工作,php,ajax,apache,iis,fastcgi,Php,Ajax,Apache,Iis,Fastcgi,我想完成PHP请求,即使Ajax会话从用户端关闭。我通过将ignore\u user\u abort(True)添加到我的php文件中,在Apache上实现了这一点,但它在使用FASTCGI的IIS 10上不起作用。试图用谷歌搜索任何解决方案,但运气不佳。我在WindowsServer2019上使用PHPV7.4和IISV10 下面是打开文件并打印连接状态的测试代码。它在Apache上工作得很好,但在IIS上,它会停止编写ponce会话,直到会话关闭 <?php ignore_user_a

我想完成PHP请求,即使Ajax会话从用户端关闭。我通过将
ignore\u user\u abort(True)
添加到我的php文件中,在Apache上实现了这一点,但它在使用FASTCGI的IIS 10上不起作用。试图用谷歌搜索任何解决方案,但运气不佳。我在WindowsServer2019上使用PHPV7.4和IISV10

下面是打开文件并打印连接状态的测试代码。它在Apache上工作得很好,但在IIS上,它会停止编写ponce会话,直到会话关闭

<?php
ignore_user_abort ( TRUE );
echo "hello\n";

$x=0;
$log_filename = ".\\test.txt";
while (@ ob_end_flush());
while ($x<100)
{
  echo($x ."\n");
  $status = connection_aborted();
  file_put_contents($log_filename, $x ." - " .$status ."\n", FILE_APPEND);
  $x++;
  @ flush();
  sleep(1);
}
?>

您可以尝试使用
fastcgi\u finish\u request()
此函数将所有响应数据刷新到客户端并完成请求。这允许执行耗时的任务,而无需保持与客户端的连接处于打开状态


您可以尝试使用
fastcgi\u finish\u request()
此函数将所有响应数据刷新到客户端并完成请求。这允许执行耗时的任务,而无需保持与客户端的连接处于打开状态


这似乎是一个老问题(自2011年以来):。但它仍然标记为打开。@Magnus我看到了那个Bug,但那是针对V5.3的,我正在使用V7.4是的,但问题可能仍然是一样的。关于同一问题的最后一条评论来自2017年。这似乎是一个老问题(自2011年以来):。但它仍然标记为打开。@Magnus我看到了那个Bug,但那是针对V5.3的,我正在使用V7.4是的,但问题可能仍然是一样的。关于同一问题的最后一条评论来自2017年。感谢您的回答,但我不想关闭连接,因为我在运行时返回数据。这里的主要目标是将实时数据返回给用户,如果用户关闭选项卡或浏览器,脚本将一直运行到最后。感谢您的回答,但我不想关闭连接,因为我在运行时返回数据。这里的主要目标是将实时数据返回给用户,如果用户关闭选项卡或浏览器,脚本将一直运行到最后。