2009-09-08 77 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