不同后台服务器共用同一session

建一个类继承SessionStateStoreProviderBase类,override Initialize、SetAndReleaseItemExclusive、ReleaseItemExclusive、GetItemExclusive、GetItem 、CreateNewStoreData  等方法。

如果会话值未更改,会在请求结束时调用ReleaseItemExclusive方法以更新到期日期并释放对会话数据存储区中项的锁定。

如果会话值已被修改,会调用SetAndReleaseItemExclusive方法将session数据存入数据库。

在请求开始时就调用GetItemExclusive 方法根据sessionid从数据库获取session数据,如果 EnableSessionState 特性设置为 ReadOnly,则 改为调用 GetItem 方法从数据库获取。

如果GetItemExclusive 未找到会话项数据,则会调用CreateNewStoreData方法在数据存储区中创建一个新会话项。

<system.web>中增加

<sessionState cookieless="false" regenerateExpiredSessionId="false" timeout="60" mode="Custom" customProvider="CouchBaseSessionProvider">
<providers>
<add name="CouchBaseSessionProvider" type="guotaigold.WebSite.Component.Framework.CouchBaseSessionStateStore" writeExceptionsToEventLog="false" />
</providers>
</sessionState>

猜你喜欢

转载自www.cnblogs.com/cathyxiao/p/9152261.html
今日推荐