1

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

一个工作进程获得第一个请求并等待。但是,第二个请求并没有按请求由第二个工作进程处理。相反,第一个工作进程获取第二个请求。如何让传入的请求分布在我的工作进程中?我预计每个请求都会转到 HttpReceiveHttpRequest 中等待的第一个工作进程。如果第一个工作进程仍在忙于处理请求,它将检查第二个工作进程。我究竟做错了什么?

4

1 回答 1

0

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

于 2013-06-28T20:57:28.063 回答