C# 在没有会话锁的多线程请求中使用相同的会话对象

C# 在没有会话锁的多线程请求中使用相同的会话对象,c#,asp.net,multithreading,session,C#,Asp.net,Multithreading,Session,在我们正在开发的asp.net web应用程序(mvc 3、.net 4.0)中,在异步操作中使用对象时,会话上的对象会遇到一些问题。(它使用异步目标包库)。 当我们创建许多对该对象的异步请求时,ASP.NET会按顺序处理。这是因为asp.net会话提供程序在http请求开始时被锁定。 当MVC控制器的EnableSessionState属性设置为只读时,我们可以得到并发响应。这种变通方法不适用于我们,因为我们需要在线程完成时在会话中存储一些数据 这里我们只需要一个线程安全、支持多任务的asp.

在我们正在开发的asp.net web应用程序(mvc 3、.net 4.0)中,在异步操作中使用对象时,会话上的对象会遇到一些问题。(它使用异步目标包库)。 当我们创建许多对该对象的异步请求时,ASP.NET会按顺序处理。这是因为asp.net会话提供程序在http请求开始时被锁定。 当MVC控制器的EnableSessionState属性设置为只读时,我们可以得到并发响应。这种变通方法不适用于我们,因为我们需要在线程完成时在会话中存储一些数据

这里我们只需要一个线程安全、支持多任务的asp.net会话状态提供程序

寻求解决办法

1) 我们是否应该在项目中实现“SessionStateStoreProviderBase”抽象类并实现自己的自定义状态管理器?最佳实践是什么

2) 是否有任何第三方库来实现此解决方案或任何.net内置库