2009-09-08 80 views
1

我有一個Web應用程序調用WCF服務來獲取對象。 回帖後請求對象。 我正在使用會話來存儲對象以備後用。 會話的使用伴隨着相關的成本。 我的另一個選擇是再次調用服務來獲取對象。 我不確定這樣做的好方法是什麼? 任何人有任何想法呢?會話vs致電網絡服務

回答

2

我會反對使用會話使用WCF快得多。會話往往會帶來一系列問題,而這些問題對於每個呼叫機制都沒有:會話可以中止(網絡關閉),如果您在一段時間內不做任何事情,會話可能會超時 - 以及你必須做好準備,並能夠以這種或那種方式處理所有這些場景。

會議似乎是一個非常好的主意 - 但他們往往會變得混亂和繁瑣以後。如果可能的話,儘量避免會話--WCF中的每個呼叫機制可能是推薦的最佳實踐,除非你真的需要有會話(如安全或可靠的會話等)。

讓你的持久對象存儲在一個專門用來做這件事的商店裏(比如SQL Server)是更好的選擇,並且最終更容易。是的,您可能需要偶爾再次請求對象 - 那又如何?最後,那幾個毫秒gonig傷害少了很多,相比於具有處理所有會話中的開發時間和處理特殊情況下,術語「混亂」 ......

馬克

+0

+1。 Yeap-我同意。 – RichardOD 2009-09-12 13:09:12

1

是的,你應該使用會話,這比讓一個http請求

+1

的選擇給予,會話更好 - 但關鍵是,你幾乎肯定不想重新發出http請求,我建議你是否使用會話或其他機制(例如緩存)來堅持對象是一個主題進一步討論。 – Murph 2009-09-08 10:49:14

+0

是的,如果他正在使用狀態服務器或sql server進行會話,那麼它將不得不再次對該對象進行序列化,這會花費時間。另外,當您存儲會話應用程序回收時會導致會話消失。緩存存在於appdomain之外。 – 2009-09-08 11:09:08