【问题标题】:How to maintain Session and same channel in WCF WebApplication如何在 WCF WebApplication 中维护 Session 和相同的频道
【发布时间】:2011-05-12 11:23:14
【问题描述】:

我创建了一个 WCF 服务,将它托管在 IIS 中,并为它创建了一个 Web 应用程序客户端。

一切正常。

问题是,当我在 WCF 服务中启用具有所有必需属性的会话时,它会产生一个问题。

我的服务有几个功能。我想首先执行的功能是我的登录功能,所以我设置 IsInitiating=true。

并且 IsInitiating=false 在所有其他功能上。

现在从客户端调用登录功能时它工作正常。但是当我在客户端登录后尝试调用其他函数时,它会生成异常,因为 IsInitiating 设置为 fale,所以无法首先调用该函数 XYZ;

我认为问题在于每次将我的页面发布回服务器时,它都会创建我的 wcf 服务的新实例,该实例会与服务器建立新会话。如何为我的 Web 应用程序中的所有事件维护相同的代理?

【问题讨论】:

  • 为什么要使用这样的架构?这是一种糟糕的方式。

标签: wcf


【解决方案1】:

我有一个非常有趣的链接给你,它可能可以解决你的问题。 http://www.codeproject.com/KB/WCF/Sessions_in_WCF.aspx

【讨论】:

  • Hey Denis,这篇文章解释了我在其他论坛上读到的相同内容。我也实现了它并使用了它。但我的问题出在客户端。我已经通过传统方式解决了我的问题。我创建了一个代理并将其存储在 asp.net 会话中。当我在考虑另一种方法时。我想创建一个代理,并且在每次回发时有什么方法可以使用相同的代理而不是会话?
  • 是的。只需缓存服务代理(客户端),然后在您想要进行服务操作调用时检索它。如果您使用的是 asp.net,可能会将其存储在会话或应用程序对象中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多