2011-05-12 57 views
0

我创建了一个WCF服务,它在IIS中托管它并为它创建一个Web应用程序客户端。如何在WCF WebApplication中维护会话和相同频道

每件事情都很好。

问题是,当我在WCF服务中启用会话时,所有必需的属性都创建了一个问题。

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

和IsInitiating = false对所有其他功能。

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

我认为这个问题是每当我的页面重新发布到服务器上时,它就会创建一个新的wcf服务实例,与服务器建立新的会话。如何维护我的Web应用程序中所有事件的相同代理?

+0

你为什么要使用这样的架构?这是一个不好的方法。 – 2011-05-12 11:36:13

回答

0

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

+0

嘿丹尼斯,那么这篇文章解释了我也在其他论坛上阅读过的相同的东西。我已经实现了它并且也被使用了。但我的问题是在客户端。 我已经通过传统方式解决了我的问题。我创建了一个代理并将其存储在asp.net会话中。而我正在考虑另一种方法。我想创建一个代理,并且在每一次回传中都有任何方法可以拥有相同的代理而不是会话? – 2011-05-12 12:03:33

+1

是的。只需缓存服务代理(客户端),然后在想要进行服务操作调用时检索它。如果您使用的是asp.net,可能将其存储在会话或应用程序对象中? – 2011-05-12 14:00:43

+0

好的,谢谢你的时间。 – 2011-05-13 10:21:43