ServiceStack - System.Web.HttpContext.Current.Session 为空
Posted
技术标签:
【中文标题】ServiceStack - System.Web.HttpContext.Current.Session 为空【英文标题】:ServiceStack - System.Web.HttpContext.Current.Session is null 【发布时间】:2021-05-30 23:38:49 【问题描述】:我有与 ServiceStack API 集成的遗留 .net mvc 应用程序,我需要从 ServiceStack API 获取/设置会话值,以便与遗留系统通信以确保正常工作。我探索了 ServiceStack 文档/其他材料中可用的多个选项,但在我的情况下似乎没有任何效果。
启用会话功能:
Plugins.Add(new SessionFeature());
尝试直接使用:
HttpContext.Current.Session
另一种方式:
var req = (HttpRequest)base.RequestContext.Get<IHttpRequest>().OriginalRequest;
var session = req.RequestContext.HttpContext.Session;
但它们似乎都不起作用。
reference
【问题讨论】:
【参考方案1】:ServiceStack Sessions 是一个完全独立的实现,不依赖或耦合到 ASP.NET 的会话。
要在 ServiceStack 请求中启用对 ASP.NET 会话的访问,您需要使用 IRequiresSessionState
接口装饰其 IHttpHandler
,如 Enable ASP.NET Sessions 文档所述。
【讨论】:
以上是关于ServiceStack - System.Web.HttpContext.Current.Session 为空的主要内容,如果未能解决你的问题,请参考以下文章
ServiceStack:升级到 5.4.1 在 ServiceStack.Common 上给了我 ReflectionTypeLoadException
如何在 ServiceStack 5.0 项目中使用来自 ServiceStack 4.0 的服务模型?
具有模式的 ServiceStack IRedisClient ScanAllKeys 未按预期返回结果 (ServiceStack 5.7.0)
哪个 Canoe 版本与链接中为 REDIS 客户端实现提供的 soln 兼容 https://github.com/ServiceStack/ServiceStack.Redis