1、同服务器、同一域名、不同应用(端口、虚拟目录等)
这种很简单,把sessionState保存到SQLServer,aspnet_regsql之后,修改存储过程TempGetAppID,把 SET @appName = 置为一个固定字符串即可。这种方案网上一搜一大把,不赘述。

2、同服务器、域名相同,子域名不同
这个比较折腾人,基础的处理方案网上也很多,也就是使用SQLServer保存Session,然后添加machineKey和httpCookies Domain设置,相当简单,不赘述。也巧了,测试时手贱在hosts里就用了 .cc.cn 域名,然后问题来了,Firefox/Chrome都没问题,可IE就是死活怎么都不行,各种折腾,各种搜索,就是不行。因为这方案是基于cookies的,后来深入测试发现cookie没有被IE正确保存,好像直接丢弃了,导致每次访问页面都生成不同的SessionID,把web.config中httpCookies Domain设置的行去掉,SessionID就不再变化了,但去掉就不能实现Session共享了。搞了两天,最后终于在E文网站上看到一个类似的问题里提到一个词“TLD”,根据E文的大概意思简单处理了一下,把 .cc.cn 测试域名改为 .cc.com,立刻一切OK了!深入搜索发现原来域名还是分三六九等的,最初的TLD七大顶级域名是.COM、.NET、.ORG、.INT、.EDU、.GOV、.MIL,我朝的.CN域名是近几年才有的,所以IE对它的支持还存在问题,看起来IE好像挺严格的,其实个人感觉IE太过于腐朽,任何一点改变对它来说都是艰难的事情,在这方面Firefox/Chrome就比IE开明多了。继续深入搜索发现好像IE6之后对TLD的支持进行了一些改进,支持长度超过5位的.cn域名(比如xxx.cn)或者三级域名(比如xx.cc.cn),有文章提到短cn域名可以通过根域名下某个路径内的页面写入cookie并且不要设置domain的值,比如在页面 http://a.cn/xxx 中写cookie,这样IE才会把cookie正确设置到a.cn,由于搞清了原因,而且项目站点的cn域名大于三个字符,项目已正常工作,就未再深入测试,需要的朋友可以试试看。

3、不同服务器、域名相同,端口不同
这种情况一般是做集群的时候,本人是在问题2的搜索过程中看到的,由于本人的项目并未涉及这个情况,所以并未深入研究,只记得有个要点说两台服务器的IIS设置要修改SiteID保持相同才行,需要的朋友请自行研究。

4、不同服务器、不同域名
这种方法好像比较复杂一点,简单了解了一下,关键词是P3P和iframe,需要的朋友请自行深入了解。

Session共享的简单总结的更多相关文章

  1. 玩转spring boot——负载均衡与session共享

     前言 当项目上线后,如果要修复bug或扩充功能,都需要重启tomcat服务.此时,正在使用应用的用户们就需要等待服务器的重启,而这就会造成不好的用户体验.还有,当仅仅只有一台tomcat服务时,如果 ...

  2. 【nginx+tomcat集群】Nginx1.12.2+Tomcat7集群+负载均衡+Session共享

    今天想着将项目优化一下,就想的实现集群分布,在本机测试:利用nginx+tomcat实现 通过上一篇博客(http://www.cnblogs.com/qlqwjy/p/8535235.html),N ...

  3. Spring Boot 一个依赖搞定 session 共享,没有比这更简单的方案了!

    有的人可能会觉得题目有点夸张,其实不夸张,题目没有使用任何修辞手法!认真读完本文,你就知道松哥说的是对的了! 在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是 ...

  4. 分布式集群Session共享 简单多tomcat8+redis的session共享实现

    ; i++) { str = str + session.getAttribute("name" + i) + "<br>"; } response ...

  5. nginx+tomcat9+redisson+redis+jdk1.8简单实现session共享

    一.环境安装 由于资源限制,在虚拟机中模拟测试,一台虚拟机,所有软件均安装到该虚拟机内 安装系统:CentOS Linux release 7.4.1708 (Core) CentOS安装选择版本:B ...

  6. Tomcat中session共享问题的简单解决办法

    tomcat-redis-session-manager 使用redis配置tomcat共享session 结构图: 分析: 分布式web server集群部署后需要实现session共享,针对 to ...

  7. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  8. 分布式中使用Redis实现Session共享(二)

    上一篇介绍了一些redis的安装及使用步骤,本篇开始将介绍redis的实际应用场景,先从最常见的session开始,刚好也重新学习一遍session的实现原理.在阅读之前假设你已经会使用nginx+i ...

  9. Redis安装及实现session共享

    一.Redis介绍 1.redis是key-value的存储系统,属于非关系型数据库 2.特点:支持数据持久化,可以让数据在内存中保存到磁盘里(memcached:数据存在内存里,如果服务重启,数据会 ...

随机推荐

  1. jsp 是什么 ,jsp 隐式对象

    google 搜索 java server page http://www.oracle.com/technetwork/java/javaee/jsp/index.html http://docs. ...

  2. 待整理 - BAT文件编写

    BAT文件语法和技巧(bat文件的编写及使用)  http://www.jb51.net/article/5828.htm

  3. Excel数据通过plsql导入到Oracle

    Excel数据通过plsql导入到Oracle 1 准备Excel导入数据 2 把Excel文件另存为(文本文件(制表符分隔)(*.txt)) 或者将Excel文件另存为(Unicode文本) 之后唯 ...

  4. (剑指Offer)面试题23:从上到下打印二叉树

    题目: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路: 很明显,这是一个广度优先遍历. 需要一个队列容器来保存结点,具体操作: 1.将根结点压入队列中,并打印根结点:如果根结点有子结点 ...

  5. <meta http-equiv = "X-UA-Compatible" cotent = "IE=edge,chrome=1"/>

    <meta http-equiv = "X-UA-Compatible" cotent = "IE=edge,chrome=1"/> 制定ie调用哪 ...

  6. 记录一点自己写的Php代码(1)取得任意种类,无限级下线

    //获取所有下线 function get_all_heeler($user_id,$user_rank = 0){ $user_id_array = $user_id; while (true) { ...

  7. C++ delete operator做了什么事

    1.C++中的delete operator做了两件事:调用析构方法和调用operator delete释放内存. 2.考虑析构方法,如果析构方法是虚方法,调用指针真实类型的析构方法,否则调用表面类型 ...

  8. JQUERY插件JqueryAjaxFileUplaoder----更简单的异步文件上传

    异步上传相信大家都做过类似的功能,JqueryAjaxFileUploader为我们提供了更简单的实现和使用方式.不过既然是JQUERY的插件那么它所依赖的环境大家都懂得.JqueryAjaxFile ...

  9. jquery 预览提交的表单

    预览表单,查看后确认提交或者返回重填 演示 XML/HTML Code <form class="mform" id="myform" method=&q ...

  10. Codeforces Gym 100015B Ball Painting 找规律

    Ball Painting 题目连接: http://codeforces.com/gym/100015/attachments Description There are 2N white ball ...