2017-03-16 65 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

什麼在兩個已經同時運行的情況下,並在其完成他們之前,我正在發送第三個?他們兩個會發生什麼? –

相關問題