Session共享的简单总结
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共享的简单总结的更多相关文章
- 玩转spring boot——负载均衡与session共享
前言 当项目上线后,如果要修复bug或扩充功能,都需要重启tomcat服务.此时,正在使用应用的用户们就需要等待服务器的重启,而这就会造成不好的用户体验.还有,当仅仅只有一台tomcat服务时,如果 ...
- 【nginx+tomcat集群】Nginx1.12.2+Tomcat7集群+负载均衡+Session共享
今天想着将项目优化一下,就想的实现集群分布,在本机测试:利用nginx+tomcat实现 通过上一篇博客(http://www.cnblogs.com/qlqwjy/p/8535235.html),N ...
- Spring Boot 一个依赖搞定 session 共享,没有比这更简单的方案了!
有的人可能会觉得题目有点夸张,其实不夸张,题目没有使用任何修辞手法!认真读完本文,你就知道松哥说的是对的了! 在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是 ...
- 分布式集群Session共享 简单多tomcat8+redis的session共享实现
; i++) { str = str + session.getAttribute("name" + i) + "<br>"; } response ...
- nginx+tomcat9+redisson+redis+jdk1.8简单实现session共享
一.环境安装 由于资源限制,在虚拟机中模拟测试,一台虚拟机,所有软件均安装到该虚拟机内 安装系统:CentOS Linux release 7.4.1708 (Core) CentOS安装选择版本:B ...
- Tomcat中session共享问题的简单解决办法
tomcat-redis-session-manager 使用redis配置tomcat共享session 结构图: 分析: 分布式web server集群部署后需要实现session共享,针对 to ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- 分布式中使用Redis实现Session共享(二)
上一篇介绍了一些redis的安装及使用步骤,本篇开始将介绍redis的实际应用场景,先从最常见的session开始,刚好也重新学习一遍session的实现原理.在阅读之前假设你已经会使用nginx+i ...
- Redis安装及实现session共享
一.Redis介绍 1.redis是key-value的存储系统,属于非关系型数据库 2.特点:支持数据持久化,可以让数据在内存中保存到磁盘里(memcached:数据存在内存里,如果服务重启,数据会 ...
随机推荐
- Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析(转载)
简介: 这个分为两个部分的系列文章研究了 Apache Tomcat 服务器的系统架构以及其运用的很多经典设计模式.第 1 部分 分析了 Tomcat 的工作原理,第 2 部分将分析 Tomcat 中 ...
- hdoj 5399 Tpp simple
WA了一下午.... 1WA:T了,因为阶乘没打表所以时间超了.. 2WA,3WA:runtime error,检查的value数组开小了,应该是MAXN.. 4WA.5WA.6WA:改了改对cnt的 ...
- 解决window8 下连接PLSQL 报ora-12154错误
操作系统版本:window8 64位企业版 数据库:oracle10g2 安装PLSQL,登录PLSQL报ORA-12154错误. 首先:所以需要下载一个32位客户端,我同时也下载了64位客户端,具体 ...
- C#制作艺术字
相信 Word 中的 艺术字 功能大家都不陌生, 前面这个 "Word" 单词就是它所为. 今天, 我们就利用C#来制作几款自己的艺术字, 可能会对我们了解字体图像的制作原理有一 ...
- codeforces Round #258(div2) D解题报告
D. Count Good Substrings time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- php实现工厂模式
设计模式-使用php实现工厂方法模式 [概要] 创建型模式 定义一个用于创建对象的接口,让子类决定实例化哪一个类.Factory Method使用一个类的实例化延迟到其子类[GOF95] [结构图] ...
- HTML之一字符集
ASCII字符集 ISO字符集 GBK等等. 1>首先,说一说为什么要设置html文件的字符集 如果不指定的话,浏览器会使用本地操作系统的字符集,那么,如果你的应用需要支持多国语言的话,就会有问 ...
- Unity3D中事件函数的运行顺序
Unity3D中脚本的生命周期是依照预先定义好的事件函数的运行流程来演化的,详细流程例如以下: Editor模式下Reset: 当脚本第一次被挂到GameObject上或用户点击Resetbutton ...
- boa安装
Boa 下载地址:http://www.boa.org/boa-0.94.13.tar.gz 1.解压生成Makefile tar xzf boa-0.94.13.tar.gz #解压 cd boa- ...
- ios开发——实用技术篇Swift篇&照片选择
照片选择 // MARK: - 选择照片 /*----- 选择照片 ------*/ @IBAction func addImageButtonClick() { let actionSheet = ...