默认情况下WCF服务是无状态的吗?

raf*_*ale 9 c# wcf stateful stateless

我有一个简单的WCF服务,允许客户端/消费者应用程序通过提供用户名和密码登录.如果用户名和密码都正确,则WCF服务为客户端提供GUID.然后将GUID和用户名存储为WCF服务中的键/值对.从此处开始,客户端将每个请求的GUID作为识别手段发送.

由于我将键/值对存储在Dictionary/Hashmap中,因此只有在WCF服务有状态时,此方法才有效.问题是,它们是默认的有状态还是我必须做些什么来使它们以这种方式表现?

Tad*_*ghe 9

每次调用服务是Windows Communication Foundation的默认实例化模式.因此,默认情况下,WCF服务不维护状态.正如Marc所说,在WCF服务中保存状态存在潜在问题.我强烈建议听从他的建议.

文章描述了WCF不同的方式来处理实例管理,包括如何保持状态,就像你问的.

Juval Lowy的优秀编程WCF服务(链接)的第4章详细介绍了.