在wcf中使用会话

在wcf中使用会话,wcf,session,Wcf,Session,如果我按照会话或单个设置服务实例,我可以在会话中的服务实例之间发送一些数据吗?应该在Asp.net会话-HttpContext.Current.session中完成 或者wcf有自己的会话?正如我所说的-wcf不是ASP.NET,它的会话处理有很大的不同。虽然ASP.NET会话和WCF会话被称为相同的会话,但它们的目的和用途却大不相同 有关更多详细信息,请阅读MSDN页面 一句话是:没有与WCF会话相关联的通用数据存储。-因此答案是否定的——WCF中的会话不是用于数据存储的 WCF会话只是将多条

如果我按照会话或单个设置服务实例,我可以在会话中的服务实例之间发送一些数据吗?应该在Asp.net会话-HttpContext.Current.session中完成
或者wcf有自己的会话?

正如我所说的-wcf不是ASP.NET,它的会话处理有很大的不同。虽然ASP.NET会话和WCF会话被称为相同的会话,但它们的目的和用途却大不相同

有关更多详细信息,请阅读MSDN页面

一句话是:没有与WCF会话相关联的通用数据存储。-因此答案是否定的——WCF中的会话不是用于数据存储的

WCF会话只是将多条消息“捆绑”到一个对话中。默认情况下,使用“每次调用”模型,每个WCF服务请求将获得自己的、新实例化的服务类实例来处理该请求,并且该服务类实例将在返回答案后被释放。使用会话可以避免这种情况——处理会话第一次调用的服务类实例将在服务器端保持活动状态(因此也会占用服务器上的内存),并将处理同一会话中的所有后续请求

然而,WCF和web服务通常最好是无状态的,因此在适当的SOA环境中,会话是一种有点奇怪的体系结构——这就是为什么WCF中的会话也不如ASP.NET会话对web应用程序有用的原因


要保持无状态并支持每次调用方法(首选最佳做法),如果需要在调用之间存储数据,请将其存储在持久性存储(例如数据库)中,并在以后需要时从持久性存储中取回。

如果您在IIS中托管服务,则可以启用ASP.Net兼容模式。这将允许您使用ASP.Net会话状态,就像在web应用程序中一样。

好的,我理解,但是我可以像ASP一样使用Wcf会话并在其中保存数据吗?如何启用ASP.Net兼容模式?