2010-09-30 57 views

回答

2

目前尚不清楚你的会话意味着什么。 WCF支持四种类型的会话:

  • 传输会话 - 用于维护服务器和客户端之间会话的传输协议。例如:的net.tcp,Net.Pipe
  • 可靠的会话 - 用于可靠的支持,以便在交付不可靠信道,如果客户端和服务器都在运行
  • 安全会议 - 客户端只被认证为第一个呼叫,随后呼叫通过会话令牌进行认证。这个会话也被称为安全上下文。
  • 应用程序会话 - 这对于IsInitiating和IsTerminating操作契约和PerSession实例的参数有意义。只有在使用任何前面的会话时,才能使用此会话=在BasicHttpBinding中不能使用它,因为它不支持传输,可靠和安全会话。

所有这些会话都与单个客户端代理和单个服务实例之间的通信有关。没有提供任何其他的东西。而且没有特殊的“会话”对象。

那么你究竟想达到什么目的?你打算取代使用ASP.NET会话的ASMX服务吗?在这种情况下,请检查sample

编辑:

关于后续调用多个服务从第一服务接收单编号和重复使用此标识的想法应该被称为相关性研究(一个大的活动/交易)或联盟(安全相关的)不会话。

+0

我的问题是有点笨..我以其他方式解决问题。但是你的回答对我来说非常有趣和有用。 – RredCat 2010-11-02 15:31:57

0

由于marc_s说你不能共享会话。

但是你可以做的是在你的WCF调用中传递会话ID作为参数,这样你就可以知道谁正在进行调用。

确保您在这些呼叫上使用加密。

0

推荐的方法是通过手动维护呼叫之间的会话状态。您可以按照自己的逻辑生成会话ID,并在每次调用时将会话信息加载/保存到数据库中。

通过这样做,你会支持的方式会议,这将使:

  • 负载均衡
  • 会话共享
  • 故障切换
相关问题