趣谈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" ...
随机推荐
- 大话存储1——存储系统的发展,计算机I/O
1 存储发展 存储在这里的含义为信息记录,是伴随人类活动出现的技术. 1. 竹简和纸张 竹简是中国古代使用的记录文字的工具,后来被纸张所取代,如图1.1所示. 2. 选数管 选数管是20世纪中期出现的 ...
- 【译】3 ways to define a JavaScript class
本文真没啥难点,我就是为了检验我英语水平退化了没哈哈虽然我英语本来就渣翻译起来也像大白话.将原文看了一遍也码完翻译了一遍差不多一个小时,其中批注部分是自己的理解如有疏漏或误解还请指出感激不尽呐,比如J ...
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest Solution
A:Broadcast Stations 留坑. B:Connect3 题意:四个栈,每次放棋子只能放某个栈的栈顶,栈满不能放,现在给出(1, x) 表示黑子放在第x个栈的第一个位置,白子放在第b个栈 ...
- 【android】如何实现猿题库题目的排版
最近我们的产品来了个新的模块,类似猿题库一样,给学生做题提高成绩的. 要求如下: 1:支持单选.多选.填空题 2:支持图片文字混排 3:输入框有交互,排版精致美观 4:为了体验优化,不能使用网页实现效 ...
- 20154312曾林 - Exp1 PC平台逆向破解
1.逆向及Bof基础实践说明 1.1-实践目标 对象:pwn1(linux可执行文件) 目标:使程序执行另一个代码片段:getshell 内容: 手工修改可执行文件,改变程序执行流程,直接跳转到get ...
- mongo增删改查封装(C#)
Framework版本:.Net Framework 4 ConnectionUtil源码参见:https://www.cnblogs.com/threadj/p/10536273.html usin ...
- Android SurfaceView入门学习
学习资料: Android 开发群英传 搜索学习资料时,搜到了罗升阳老师的Android视图SurfaceView的实现原理分析,老罗老师写的一系列博客,一年前开始学习Android时看不懂,现在依然 ...
- CV 两幅图像配准
http://www.cnblogs.com/Lemon-Li/p/3504717.html 图像配准算法一般可分为: 一.基于图像灰度统计特性配准算法:二.基于图像特征配准算法:三.基于图像理解的配 ...
- 20135320赵瀚青LINUX第四章读书笔记
概述 什么是进程调度 进程调度:在可运行态进程之间分配有限处理器时间资源的内核子系统. 一.调度策略 4.1进程类型 I/O消耗型进程:大部分时间用来提交I/O请求或是等待I/O请求,经常处于可运行状 ...
- Windows Shell编程之如何编写为文件对象弹出信息框的Shell扩展
有关COM编程资料 转载:http://www.cnblogs.com/lzjsky/archive/2010/11/22/1884702.html 活动桌面引入一项新特性, 当你在某些特定对象上旋停 ...