我正在使用服务堆栈来构建创建RESTful服务,但对它没有深入的了解。这相当于发送请求并获取响应。我有场景,我的问题取决于它。
场景:我正在从浏览器或任何能够向服务器发送请求的客户端发送请求。考虑服务器将需要 3 秒来处理单个请求并将响应发送回浏览器。一秒钟后,我从同一浏览器(客户端(向服务器发送了另一个请求。现在我收到了我稍后发送的第二个请求的回复。
问题1:我没有得到回应的第一个请求后面发生了什么。
问题 2:如何停止处理孤立请求。
编辑:我已使用IIS服务器来托管服务。
ServiceStack 在多线程 Web 服务器上并发执行请求,无论您是托管在 ASP.NET/IIS 还是自托管,因此 2 个并发请求在不同的线程上并发运行。如果在服务中执行异步任务,则可能有不同的方案,其中它释放线程以执行不同的任务,但实现细节在这里基本上无关紧要。
HTTP Web 请求都执行到其终点,即使其客户端连接丢失,您的服务也永远不会收到通知,也不会引发异常。
但是对于长时间运行的服务,您可以启用高级 ServiceStack 的可取消请求功能,该功能使客户端能够取消长时间运行的请求。