2017-03-16 63 views
2

我正在使用服务堆栈来构建创建RESTful服务,但没有深入了解它。这用作发送请求并获取响应。我有情景,我的问题取决于它。请求和响应如何在服务堆栈中获得进程?

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

问题1:第一次请求发生了什么,我没有得到回应。

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

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

回答

3

ServiceStack executes requests concurrently on multithreaded web servers,无论您是在ASP.NET/IIS上承载还是自托管,以便2个并发请求在不同线程上同时运行。如果您在服务中执行异步任务,则可以使用不同的方案来释放线程以执行不同的任务,但实现细节在此基本无关紧要。

即使客户端连接丢失,每个HTTP Web请求都会执行到最后,您的服务将不会被通知,也不会引发异常。

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

+0

我得到了这个,如果客户端集合丢失了,您的服务从未被通知,也没有引发异常,但问题1仍未得到答复。 –

+0

@RavindraSinare它被回答,这两个正在同时运行在不同的线程 – mythz

+1

什么在两个已经同时运行的情况下,并在其完成他们之前,我正在发送第三个?他们两个会发生什么? –

相关问题