RESTful WCF 服务可以保存会话数据吗?
Can RESTful WCF service hold session data?
我们正在开发一些本机移动应用程序。这些应用程序使用 REST 服务。它是 WCF 服务。我们在 WCF 中使用 HttpContext.Current.Session["Key"]=Value
来保存一些细节。
WCF 服务可以保存 windows 客户端的会话信息吗?
参考:
Can WCF service hold session information for windows client ?
首先,- 链接的文章不相关,因为虽然 wsHttpBinding 确实支持 sessions,但它不是 RESTful 绑定。
如果您在 WCF 中托管 REST 服务,您将无法访问本机 session,因为 webHttpBinding,这是用于 REST 服务的绑定WCF,不支持 sessions。
因此,尽管您可以访问 HttpContext.Current,但 Session 属性 将为空。
其次,session 的使用违反了 RESTful 原则(参见 post here),这是有争议的。这是因为 HTTP 被设计为本质上是无状态的。
如果您确实需要 sessions,您要么必须使用 SOAP-based 绑定(如 wsHttpBinding),要么为给定用户实现某种存储状态的方法服务本身。
我们正在开发一些本机移动应用程序。这些应用程序使用 REST 服务。它是 WCF 服务。我们在 WCF 中使用 HttpContext.Current.Session["Key"]=Value
来保存一些细节。
WCF 服务可以保存 windows 客户端的会话信息吗?
参考:
Can WCF service hold session information for windows client ?
首先,- 链接的文章不相关,因为虽然 wsHttpBinding 确实支持 sessions,但它不是 RESTful 绑定。
如果您在 WCF 中托管 REST 服务,您将无法访问本机 session,因为 webHttpBinding,这是用于 REST 服务的绑定WCF,不支持 sessions。
因此,尽管您可以访问 HttpContext.Current,但 Session 属性 将为空。
其次,session 的使用违反了 RESTful 原则(参见 post here),这是有争议的。这是因为 HTTP 被设计为本质上是无状态的。
如果您确实需要 sessions,您要么必须使用 SOAP-based 绑定(如 wsHttpBinding),要么为给定用户实现某种存储状态的方法服务本身。