2016-03-30 20 views
0

我正在尋找一個明確的答案。我無法在我的網上找到明確的東西。WebAPI - 會話和異步方法

  1. 嚴格來說,在WebAPI REST服務中使用會話絕對不行嗎?

  2. 爲什麼我看到的每個示例都使用Async/Await? (給定每個請求的優點是什麼已經存在於它自己的線程中?)

在此先感謝!

回答

2

嚴格來說,在WebAPI REST服務中使用會話絕對不行嗎?

不嚴格禁止,但一般不鼓勵。這是因爲會話數據會限制您擴展的能力。

爲什麼我看到的每個示例都使用Async/Await? (這個給定的優點是什麼,每個請求已經存在於它自己的線程中?)

這一切都使用較少的線程。當請求(異步)等待時,它不會使用任何線程。因此,異步/等待使您縮小比例。異步最大限度地利用您現有的線程池。

+0

這真的很簡潔明瞭。謝謝。 –

2

2:

什麼是給每個請求的這種優勢已經生活在自己的 線程?

假設WebApi調用將在某個地方進行另一個異步調用 - 例如數據庫調用。在這種情況下,線程可以在等待結果時重新使用。

嚴格來說,在WebAPI REST服務中使用會話是否嚴格?

在技術上不確定 - 但從概念的角度來看,REST服務不應該依賴會話。

+0

其實我會說是最多的情況。除非您遇到非常罕見的情況,否則API實際上會在某個時刻發起IO調用。不需要的邊緣情況可以做成非異步的。 – TomTom

+0

好吧,我可以考慮發送一些東西進入隊列並報告成功,並在同一時間進行相關IO調用,然後將它們組合在一起。這是有道理的。謝謝。沒有其他一些我錯過的神奇原因。 –