2009-11-05 142 views
4

我是WCF的新手,我一直试图在Web服务中使用会话状态,我设法使用numberofarticles有状态的WCF Web服务

但是这些文章都遵循.net 2.0方法,因为默认情况下新的WCF服务引用没有CookieContainer。

什么是使用有状态网络服务的新的学校方式?

(不使用向后方法,如代码生成与Wsdl.exe工具或2.0“添加Web服务”的路线。)

+0

FYI: 老学校的网络服务的使用作为一种类型: System.Web.Services.Protocols.SoapHttpClientProtocol 与WCF为: System.ServiceModel.ClientBase – 2009-11-05 12:36:52

回答

6

一个字:切勿

只要有可能,服务应该是无状态的 - 它让生活变得更容易。

如果您需要保持呼叫之间的状态,请将其置于持久容器中,例如,一个数据库,并报告下一次调用时可以找到它的ID。

马克


如果你真的必须保持会话(真的吗?想想看两次 - 更好的是:三次) - 然后WCF提供某些绑定每个会话的电话(协议)。

最接近ASMX webservices的basicHttpBinding不支持会话。对于面向互联网的应用程序,您需要使用wsHttpBinding,对于面向内部网的服务,您需要使用netTcpBinding

查看有关使用WCF会话的MSDN docs