asp.net – 如何从进程中慢慢迁移到将Redis用作会话状态提供程序?

实现我自己的会话状态提供程序是否一个坏主意,该提供程序根据redis会话提供程序和inproc会话提供程序之间的密钥有条件地进行切换?

我正在使用当前使用inproc会话提供程序的非常大的遗留asp.net应用程序.我们正在迁移到Redis作为会话状态提供程序,以便它继续部署,但是应用程序充满了会话滥用(例如,太大的对象,不可序列化的对象,我出于某种原因在那里看到了一个线程?).

我们计划慢慢纠正这些滥用行为,但在纠正之前我们无法真正转向redis.我希望我们可以慢慢地开始将可序列化安全密钥迁移到redis中,而滥用仍然存在于内存中,直到我们解决它们为止.

有没有人对此有任何建议?或者也许是从流程中迁移到流程外的其他建议?

谢谢!

最佳答案
在ASP.NET Web Form和MVC中,使用Redis进行会话状态只是Web.config中的几行修改.然后将SerializableAttribute添加到类中.有no side effects of applying it to a class.

根据我几年前迁移到Azure时的经验,会话状态不值得慢慢迁移.

缓存是不同的故事.它需要更改代码,因此我们最终实现了两个类 – MemoryCacheManager和RedisCacheManager,并在运行时在IoC容器中注册.然后将ICacheManager注入依赖类.

转载注明原文:asp.net – 如何从进程中慢慢迁移到将Redis用作会话状态提供程序? - 代码日志