Asp.Net如何将Session存入Mysql

2025-11-17 14:03:45

1、web.config里面自定义session存储模式,配置如下:

主要是mode属性和数据库连接字符串的配置

<sessionState mode="Custom" customProvider="CustomSessionStoreProvider" timeout="20">

      <providers>

        <add name="CustomSessionStoreProvider"

             type="SessionStore.MySqlSessionStoreProvider, SessionStore"

             applicationName="MyAPP"

             connectionString="Server=localhost;User Id=xxx;Password=xxx;Database=xxx;charset=utf8;"

             />

      </providers>

    </sessionState>

2、开发实现SessionStore.dll,要求:

1、自动创建sessions表

2、根据sessionid动态分配用户,模拟负载均衡

3、数据库连接字符串支持加密,多个连接串按‘|’分隔

4、appname根据不同项目可自动生成,也可以统一配置

5、定时清理过期的sessioin数据

3、具体实现请参考msdn官网案例,点这里https://msdn.microsoft.com/en-us/library/ms178589(v=vs.140).aspx

4、填坑:并发导致死锁问题

(这里和官网不一致)仅针对可读写的请求才+1,客户端多个并发的请求(异步)(可读+可读写)偶尔会出现死锁的情况;

  if (lockRecord) { lockId = (int)lockId + 1;

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:163
  • 阅读量:66
  • 阅读量:106
  • 阅读量:195
  • 阅读量:181
  • 猜你喜欢