SOAP请求阻止其他SOAP请求

时间:2016-04-21 13:08:16

标签: php wcf soap soap-client

我有一个WordPress Web应用程序,它通过SOAP与WCF服务进行通信。

让我们说我访问一个长期运行的SOAP请求。在另一个选项卡中,我访问另一个SOAP请求,但这个请求很短。短期请求似乎被长期运行的请求阻止。

在执行SOAP请求时,我为每个请求创建一个新客户端。我不知道WCF服务配置的详细信息,但我确信它能够处理并发请求。这是因为在运行Web应用程序的另一个实例时,其他短请求完成,而不等待Web应用程序的第一个实例中的长时间运行。

我已经考虑过使用某种异步SOAP客户端,但我找不到任何适合我的东西。由于我发现这方面的信息很少,我认为我可能是那个做错事的人。

为什么运行请求会阻止其他请求?

1 个答案:

答案 0 :(得分:1)

这与WCF无关。您的PHP会话文件被锁定,因此每个浏览器只能有一个并发请求。

基本上有两种解决方案:

  • 在Web服务器上的后台线程或后台进程中启动WCF调用。这样处理浏览器请求的PHP脚本可以立即返回。

  • 更改WCF服务,而不是立即执行,它接受“开始工作”调用,您可以轮询执行结果。