繁体   English   中英

多个工作进程调用HttpReceiveHttpRequest

[英]multiple worker processes calling HttpReceiveHttpRequest

我想使用Windows HTTP Server API 2.0在我的旧C ++代码周围包装一个RESTful Web服务。 我从MSDN中的示例应用程序开始,将其更改为使用2.0 API,然后将其分为三个进程:一个控制器应用程序,它创建一个命名队列和url组,以及两个相同的工作进程,它们是该控制器应用程序的子进程。 。 两个工作人员都同步调用HttpReceiveHttpRequest并等待传入​​的请求。 当他们收到请求时,他们调用Sleep(5000)等待5秒钟,然后再次调用HttpReceiveHttpRequest。 这样,当一个工作进程仍在响应第一个请求时,我便可以从浏览器触发第二个请求。

一个工作进程获得第一个请求并等待。 但是,第二个工作进程未按请求处理第二个请求。 而是,第一个工作进程获取第二个请求。 如何获得传入的请求以在我的工作进程之间分配? 我希望每个请求都将转到在HttpReceiveHttpRequest中等待的第一个工作进程。 如果第一个工作进程仍在忙于处理请求,它将检查第二个工作进程。 我究竟做错了什么?

我已经解决了问题。 我使用的是Firefox,两个标签都具有相同的网址( http://127.0.0.1:80/test ),然后执行全部刷新。 显然,FF不会同时发出这两个页面请求,而是发送一个,等待响应,然后发送另一个,即使选项卡中的动画使它们看起来好像都在同时发送! 如果我将IE用于一个选项卡,将FF用于另一个选项卡,则将得到重叠的请求,并且我的示例应用程序按预期使用了两个工作进程! 也可用于两个IE选项卡。 只有FF表现出这种奇怪的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM