zoukankan      html  css  js  c++  java
  • asp.net 多站点共享StateServer Session

    1. <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" ></sessionState>

    2. 打开注册表,运行cmd/regedit,找到节点HKEY_LOCAL_MACHINESYSTEMControlSet001Servicesaspnet_stateParameters

        a.将AllowRemoteConnection值设置为1

        b.将Port值设置为a5b8(十六进制),即十进制42424(默认值)

    3. 分别在网站项目A和网站项目B的Global.asax.cs中加入下面代码
      public override void Init()
              {
                  base.Init();
                  foreach (string moduleName in this.Modules)
                  {
                      string appName = "APPNAME";
                      IHttpModule module = this.Modules[moduleName];
                      SessionStateModule ssm = module as SessionStateModule;
                      if (ssm != null)
                      {
                          FieldInfo storeInfo = typeof(SessionStateModule).GetField("_store", BindingFlags.Instance | BindingFlags.NonPublic);
                          SessionStateStoreProviderBase store = (SessionStateStoreProviderBase)storeInfo.GetValue(ssm);
                          if (store == null)//In IIS7 Integrated mode, module.Init() is called later
                          {
                              FieldInfo runtimeInfo = typeof(HttpRuntime).GetField("_theRuntime", BindingFlags.Static | BindingFlags.NonPublic);
                              HttpRuntime theRuntime = (HttpRuntime)runtimeInfo.GetValue(null);
                              FieldInfo appNameInfo = typeof(HttpRuntime).GetField("_appDomainAppId", BindingFlags.Instance | BindingFlags.NonPublic);
                              appNameInfo.SetValue(theRuntime, appName);
                          }
                          else
                          {
                              Type storeType = store.GetType();
                              if (storeType.Name.Equals("OutOfProcSessionStateStore"))
                              {
                                  FieldInfo uribaseInfo = storeType.GetField("s_uribase", BindingFlags.Static | BindingFlags.NonPublic);
                                  uribaseInfo.SetValue(storeType, appName);
                              }
                          }
                      }
                  }
              }
      

        ASP.NET_SessionId Cookie的域名要设置相同的域名

  • 相关阅读:
    2019 西安邀请赛 D
    time 库
    字符串处理+格式化输出
    数据类型
    turtle1
    格式问题
    字符串1
    基础操作
    链表去重
    PAT 1093
  • 原文地址:https://www.cnblogs.com/lizhanglong/p/5374584.html
Copyright © 2011-2022 走看看