请求和响应如何在服务堆栈中获得进程?

时间:2017-03-16 08:32:40

标签: iis request httpwebrequest servicestack restful-url

我正在使用服务堆栈来构建创建RESTful服务,而不是深入了解它。这可用作发送请求和获取响应。我有情景,我的问题取决于它。

场景:我正在向浏览器或我能够向服务器发送请求的任何客户端发送请求。考虑服务器需要3秒来处理单个请求并将响应发送回浏览器。 一秒钟后,我已从同一浏览器(客户端)向服务器发送了另一个请求。现在我收到我后来发送的第二个请求的回复。

问题1:第一个请求背后发生了什么,我没有得到回复。

问题2:如何停止处理孤儿请求。

编辑:我使用IIS服务器来托管服务。

1 个答案:

答案 0 :(得分:3)

ServiceStack executes requests concurrently on multithreaded web servers,无论您是在ASP.NET / IIS上托管还是自托管,因此2个并发请求在不同线程上并发运行。如果您在服务中执行异步任务,可以释放线程以执行不同的任务,则可能存在不同的场景,但实现细节在这里基本上无关紧要。

每次都会执行HTTP Web请求,即使客户端连接丢失,也不会通知服务,也不会引发异常。

但是对于长时间运行的服务,您可以启用高级ServiceStack's Cancellable Requests Feature,这样客户端就可以取消长时间运行的请求。