【发布时间】:2023-04-06 12:47:01
【问题描述】:
我们正在做一个 WCF REST json 服务 (WebHttpBinding)。由于纯 WCF 会话不适用于这种绑定,因此我们使用的是 asp.net 会话。所以我们设置:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
在我们的 web.config 中,并且:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
在我们的服务实施之上。 我们有几种服务方法,例如:
public void OpenSession(string userName)
public void GetSomething(int somethingId)
public void CloseSession()
然后我们在每个方法中测试HttpContext的sessionId。
HttpContext.Current.Session.SessionID
问题是:它总是在变化。 如果我在网络浏览器中调用 OpenSession?userName='toto',然后再调用 GetSomething?somethingId=1234,会话 ID 会发生变化。
wcf 似乎没有很好地处理 cookie。如果我在 fiddler 中调用 OpenSession 方法,则在 http 标头中,服务没有返回“Set-Cookie”。
【问题讨论】:
标签: wcf session webhttpbinding