我正在使用WCF服务(通过WebGet属性)。
我正在尝试从WCF服务访问Session,但是HttpContext.Current为null
我添加了AspNetCompatibilityRequirements并编辑了web.config但我仍然无法访问会话。
是否可以一起使用WebGet和Session?
谢谢!
答案 0 :(得分:5)
是的,有可能。如果您修改web.config
:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
并添加AspNetCompatiblityRequirements
,HttpContext.Current
应该可用。
再次检查所有内容,也许你已将属性放在错误的位置(界面而不是类?)。
答案 1 :(得分:4)
带会话的RESTfull服务?
请参阅此处的精彩讨论:Can you help me understand this? "Common REST Mistakes: Sessions are irrelevant"
http://javadialog.blogspot.co.uk/2009/06/common-rest-mistakes.html(第6点)
和
http://www.peej.co.uk/articles/no-sessions.html
保罗·普雷斯科德的话:
会话无关紧要。
客户端不需要“登录”或“启动连接”。 HTTP身份验证已完成 自动发送每条消息。客户端应用程序是消费者 资源,而不是服务。因此没有什么可登录的! 假设您在REST网络服务上预订航班。您 不要创建与服务的新“会话”连接。相反,你问 “行程创建者对象”为您创建一个新的行程。您可以 开始填补空白,但后来得到一些完全不同 网上其他地方的组件,以填补其他一些空白。有 没有会话所以没有迁移会话状态的问题 客户端。服务器中也没有“会话亲和力”的问题 (尽管仍有负载平衡问题需要继续)。