默认情况下,WCF 服务是否为无状态

本文关键字:状态 是否 服务 情况下 WCF 默认 | 更新日期: 2023-09-27 17:56:45

我有一个简单的WCF服务,它允许客户端/使用者应用程序通过提供用户名和密码来登录。如果用户名和密码都正确,WCF 服务将为客户端提供 GUID。然后,GUID 和用户名将作为键/值对存储在 WCF 服务中。从这里开始,客户端将每个请求一起发送其 GUID 作为标识手段。

由于我将键/值对存储在字典/哈希映射中,因此此方法仅在 WCF 服务是有状态时才有效。问题是,默认情况下它们是有状态的,还是我必须做些什么才能使它们以这种方式运行?

默认情况下,WCF 服务是否为无状态

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

本文介绍在 WCF 中处理实例管理的各种方法,包括如何维护所请求的状态。

Juval Lowy 出色的编程 WCF 服务(链接)的第 4 章将详细介绍。

默认情况下它们是无状态的,如果可能的话,我强烈建议保持这种状态。但是,如果由于某种原因您无法启用,则可以启用状态。

您必须使用 wsHttpBinding 或

wsDualHttpBinding,然后将服务协定(MSDN 链接)的 SessionMode 设置为允许或必需。 更详细地介绍。