趣谈StateServer在Web Garden,Web Farm下的使用
上一篇翻译的博客【译文】漫谈ASP.NET中的Session已经介绍了Session的基础知识,如果看过了的话对Session应该有了一个比较清晰的认识了,现在我来谈谈我所遇到的困境以及对Session的一些看法。
我们是一家以查询服务为主的网站,然后Leader说,要给查询增加验证码╮( ̄﹏ ̄)╭ ,一开始,我骚包地使用了加减法的验证码(因为已经成为历史,找不到截图了),然后过了两天,客服MM就开始给我们反馈问题了,说接到了大量的客户投诉!嗯,是这样的

很疑惑啊(= ̄ω ̄=) ,不应该出现问题才对,因为我是用StateServer做了Session的集中式管理,也设置了相同的MachineKey了,按照各种教程来说都应该无缝对接才对啊,嗯~是不是因为我们的验证码的确太难了?20以内的加减法诶~好吧,我改!字母数字组合!这下简单了吧~过了两天,客服MM又来找了,客户说验证码还是输入不对啊!!!!!

这下奇怪了,我自己去试吧~经过多次尝试!

这是真的!︽⊙_⊙︽咋办咧?记日志吧~日志上线1分钟,就有N多输错的内容过来了,我看了一下,有的挺匪夷所思的~嘿嘿~
怎么有个奇奇怪怪的东西混进来了?
不过后来分析日志发现,很多识别出现问题,比如1和l,0和o,好吧,该把这些字符去掉~我大哥和我说,为了方便调试,把字母都去了吧~我深表同意!然后我们离真相只有一步之遥了~一看日志,真的有一些相差很大的输入~我基本确定了是Session跨域引发的问题。因为我们是用一个负载均衡设备做的Web Farm,我觉的理论上出现跨服务器的概率不大,因为本地是有DNS缓存的,缓存时间是20多分钟吧,我记得,但是既然出现了这个问题,就说明本地DNS缓存对负载均衡设备是比较无力的,之后进行诊断,只能祭出我大大神器~页面级调试~什么?你没听过?

对,就是在前端页面加一个这个东西,就能做到了

用了这玩意儿,什么Cookie,Session ID,Session Value统统跑不出你的把控,然后本地修改HOST,让他在我所控制下在两台服务器之间进行跳转。最后我100%地确定了!两台服务器的Session没有共享!

怎么样~SB了吧~照着各种资料设置,最后还是失败了!然后就开始了无穷无尽的找资料,然后就翻译出了那篇博客~但是还是没有解决我的问题。昨天下午,终于招到了线索!k325056讲到了这个问题!!
我必须总结后告诉你!两个站点的虚拟路径是要保证一致的!!!!而且是大小写敏感的
对,在我的调试大神器里有这个东西!我为什么要放出两条来呢?因为我必须难过地告诉你:我到现在也不知道怎么改这个虚拟地址!!!!!!!!!!◢▆▅▄▃崩╰(〒皿〒)╯潰▃▄▅▇◣
但是聪明如我,还是发现了INSTANCE_ID和虚拟地址之间的关系了~嘿嘿~ID控制着虚拟地址的最后一位,而我们两台服务器上的网站ID是不同的~地址也就不同了~然后修改以下网站ID(这里有一个天坑!修改了以后我们的网站立马全部崩溃!特么的因为修改了ID以后IIS就把你的站点停止了~~~停止了.....停止了.......你需要手动开启你的站点)然后现在再用调试神器去观察,嘿嘿,生活是美好的~Session是统一的!
总结时间
1、StateServer很好用,很方便,采用集中式管理,支持数据压缩,在web.config里配置就好了,大神的这 篇博客里有 别怕英文,看图就好了~但是!请记住!这玩意儿对应用之间是有数据隔离的!要在web Farm里使用他的话,必须要保证两个站点在两台服务器上的虚拟目录要一致,大小写敏感!
2、根据上一条显示,如果是多个应用Session数据共享就会出现问题!所以我感觉,Sate Server模式更适合Web Garden环境使用!多个应用,有不同的Web Site ID的话要使用State Server共享数据是非常困难的!有资料显示可以通过反射来修改他的应用验证机制来实现这个目的。
趣谈StateServer在Web Garden,Web Farm下的使用的更多相关文章
- nginx+iis、NLB、Web Farm、Web Garden、ARR
nginx+iis实现负载均衡 在win2008R2上使用(NLB)网络负载均衡 NLB网路负载均衡管理器详解 [译文]Web Farm和Web Garden的区别? IIS负载均衡-Applicat ...
- Web Farm 和Web Garden
这两个都是提高网站性能的服务器端技术 1.Web Farm:如果应用程序被多个服务器托管,这种情况就可以称作Web Farm. 2.Web Garden: 指的是一个应用程序可以分成多个进程(w3wp ...
- Web Farm和Web Garden的区别
在这篇博文中,我将确切剖析Web Farm和Web Garden的区别和原理,以及使用它们的利弊.进一步地,我将介绍如何在各个版本的IIS中创建Web Garden. 英文原文 | Abhijit J ...
- What is the difference between Web Farm and Web Garden?
https://www.codeproject.com/Articles/114910/What-is-the-difference-between-Web-Farm-and-Web-Ga Clien ...
- 【转】浅谈常用的几种web攻击方式
浅谈常用的几种web攻击方式 一.Dos攻击(Denial of Service attack) 是一种针对服务器的能够让服务器呈现静止状态的攻击方式.有时候也加服务停止攻击或拒绝服务攻击.其原理就是 ...
- [转]ASP.NET应用程序生命周期趣谈(三) HttpModule
在之前的文章中,我们提到过P_Module(HttpModule)这个能干的程序员哥们儿,它通过在项目经理HttpApplication那里得到的授权,插手整个应用程序级别的事件处理.所有的HttpM ...
- web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造)
web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造) XSS(跨站脚本攻击)和CSRF(跨站请求伪造) Cross-site Scripting (XSS) h ...
- [转]ASP.NET应用程序生命周期趣谈(五) IIS7瞎说
Ps:建议初学者在阅读本文之前,先简要了解一下之前的几篇文章,以便于熟悉本文提到的一些关于IIS6的内容,方便理解.仅供参考. PS:为什么叫瞎说呢?我觉得自己理解的并不到位,只能是作为一个传声筒,希 ...
- 【WEB】web www http html hypermedia hypertext 技术名词的意思
www WWW是环球信息网的缩写,(亦作"Web"."WWW"."'W3'",英文全称为"World Wide Web" ...
随机推荐
- 【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
loadrunner录制脚本时候有事件但是一直白页怎么办? 解决办法:依次进行下方1.2.方法操作,如果还不行再进行3的操作. 1.勾选下图IE浏览器的Internet选项中“启用第三方浏览器拓展*” ...
- (转) SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
springboot采纳了建立生产就绪spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...
- mutex锁住共用线程函数 造成了死锁 ,为什么?
锁住共用的线程函数,为什么出现了死锁的现象,是真的死锁了吗?为什么勒[清晰早点] [逍遥游]# 一般都是用 EnterCriticalSection 和 LeaveCriticalSection 锁住 ...
- NodeJS学习笔记四
Generator简介 基本概念 Generator函数有多种理解角度.从语法上,首先可以把它理解成,Generator函数是一个状态机,封装了多个内部状态. 执行Generator函数会返回一个遍历 ...
- Git 系列——第一步安装 Git
之前也没有用过什么版本控制的工具,唯一用过的就是 SVN 了,不过也只是简单的使用而已,比如写好代码就签入,没了?是的,没了. 于是接触到了 Git 这个分布式版本控制软件,接下来就让我们好好学习,天 ...
- 关于eval 与new Function 到底该选哪个?
废话不多说,直接上测试代码 复制代码 代码如下: var aa = "{name:'cola',item:[{age:11},{age:22},{age:23},{age:23}]}&quo ...
- 38初识xml
XML(可扩展标记语言)是一种用于记录多种数据类型的标记语言.使用XML可以将各类型的文档定义为容易读取的格式,便于用户读取.而且,在应用程序中使用XML,可以轻松实现数据交换. QT中提供两种访问X ...
- Educational Codeforces Round 54 (Rated for Div. 2) Solution
A - Minimizing the String solved 题意:给出一个字符串,可以移掉最多一个字符,在所有可能性中选取一个字典序最小的. 思路:显然,一定可以移掉一个字符,如果移掉的字符的后 ...
- HttpClient4.x 使用cookie保持会话
HttpClient4.x可以自带维持会话功能,只要使用同一个HttpClient且未关闭连接,则可以使用相同会话来访问其他要求登录验证的服务(见TestLogin()方法中的“执行get请求”部分) ...
- 【软件安装】Xshell + XFtp
[问题]xshell evaluation period has expired 今天发现一个xshell过期的事情,其实官方提供对应的校园版本供大家使用 进入官方下载地址:xshell地址 填写个人 ...