我有一个简单的 WCF 服务,它允许客户端/消费者应用程序通过提供用户名和密码来登录。如果用户名和密码都正确,WCF 服务会为客户端提供一个 GUID。GUID 和用户名随后作为键/值对存储在 WCF 服务中。从这里开始,客户端将其 GUID 与每个请求一起发送,作为识别手段。
由于我将键/值对存储在 Dictionary/Hashmap 中,因此这种方法仅在 WCF 服务是有状态的情况下才有效。问题是,它们在默认情况下是有状态的,还是我必须做些什么才能让它们以这种方式表现?
默认情况下它们是无状态的,如果可能的话,我强烈建议保持这种状态。但是,如果由于某种原因您无法启用,您可以启用状态。
您必须使用 wsHttpBinding 或 wsDualHttpBinding,然后将 ServiceContract(MSDN 链接)的 SessionMode 设置为允许或必需。进入更详细的内容。