【问题标题】:How Request and Response will got process in service stack?请求和响应如何在服务堆栈中得到处理?
【发布时间】:2017-03-16 08:32:40
【问题描述】:

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

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

问题 1:我没有得到响应的第一个请求背后发生了什么。

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

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

【问题讨论】:

    标签: iis request httpwebrequest servicestack restful-url


    【解决方案1】:

    ServiceStack executes requests concurrently on multithreaded web servers,无论您是托管在 ASP.NET/IIS 上还是自托管,因此 2 个并发请求同时在不同的线程上运行。如果您在服务中执行异步任务,则可能会出现不同的情况,其中它可以释放线程以执行不同的任务,但实现细节在很大程度上无关紧要。

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

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

    【讨论】:

    • 我知道了,如果客户收集丢失,您的服务永远不会收到通知,也不会引发异常,但问题 1 仍未得到解答。
    • @RavindraSinare 得到了回答,两者都在不同的线程上同时运行
    • 如果两个已经同时运行并且在完成它们之前我要发送第三个怎么办?他们俩怎么了?
    • @RavindraSinare 是认真的吗?他们什么都没有发生,他们都在各自独立的线程中并发运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2016-12-27
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    相关资源
    最近更新 更多