实现我自己的 session 状态提供者并在redis session 提供者和inproc session 提供者之间基于 key 有条件地进行切换是一个坏主意吗?

我正在一个非常大的传统asp.net应用程序中工作,该应用程序当前正在使用inproc session 提供程序。我们正在迁移到Redis作为 session 状态提供者,以便它可以持久部署,但是应用程序充满了 session 滥用(例如,太大的对象,不可序列化的对象,出于某种原因,我在那里看到了一个线程吗?)。

我们计划慢慢纠正这些滥用行为,但是在纠正所有这些滥用行为之前,我们无法真正迁移到Redis。我希望我们可以慢慢开始将可序列化的安全 key 迁移到Redis,同时将滥用问题保留在内存中,直到我们解决它们为止。

有人对此有任何建议吗?还是从过程中迁移到过程外的替代建议?

谢谢!

最佳答案

在ASP.NET Web窗体和MVC中,将Redis用于 session 状态只是Web.config中的几行修改。然后将SerializableAttribute添加到类中。有no side effects of applying it to a class

根据我几年前迁移到Azure时的经验, session 状态不值得缓慢迁移。

缓存是另外一回事。它需要更改代码,因此我们最终实现了两个类-MemoryCacheManagerRedisCacheManager,并在运行时在IoC容器中注册。然后将ICacheManager注入(inject)相关类。

关于asp.net - 我如何逐步从进程逐步迁移到使用Redis作为 session 状态提供程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52338316/

10-09 20:28
查看更多