7

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

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

我们计划慢慢纠正这些滥用行为,但在它们都得到纠正之前,我们无法真正迁移到 redis。我希望我们可以慢慢开始将可序列化的安全密钥迁移到 redis 中,而滥用行为仍会保留在内存中,直到我们解决它们。

有人对此有什么建议吗?或者也许是从进程中迁移到进程外的替代建议?

谢谢!

4

2 回答 2

3

在 ASP.NET Web 窗体和 MVC 中,使用RedisSession State 只是在Web.config. 然后添加SerializableAttribute到类。将其应用于类没有副作用

根据我几年前迁移到 Azure 时的经验,Session State 不值得慢慢迁移。

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

于 2018-09-14T20:34:25.283 回答
2
于 2018-09-17T18:12:05.700 回答