我想使用 Windows HTTP Server API 2.0 围绕我的旧 C++ 代码包装一个 RESTful Web 服务。我从 MSDN 中的示例应用程序开始,将其更改为使用 2.0 API,然后将该应用程序拆分为三个进程:一个创建命名队列和 url 组的控制器应用程序和两个相同的工作进程,它们是控制器应用程序的子进程. 两个工作人员同步调用 HttpReceiveHttpRequest 并等待传入请求。当他们收到请求时,他们调用 Sleep(5000) 等待 5 秒,然后再次调用 HttpReceiveHttpRequest。这允许我在一个工作进程仍在响应第一个请求时从浏览器触发第二个请求。
一个工作进程获得第一个请求并等待。但是,第二个请求并没有按请求由第二个工作进程处理。相反,第一个工作进程获取第二个请求。如何让传入的请求分布在我的工作进程中?我预计每个请求都会转到 HttpReceiveHttpRequest 中等待的第一个工作进程。如果第一个工作进程仍在忙于处理请求,它将检查第二个工作进程。我究竟做错了什么?