某公司为我服务的甲方公司开发一个挺重要的应用.已经上线了一年多了,不停的修修改改.也算正常使用.正所谓,秀恩爱,死得快.No 作就No Die.也少知道是那个Smarty Pants闲的蛋疼说新修改的这版咱不在Windows2003上玩了.咱们改在Windows2008上玩吧. 在这里我要插一句.咱们码畜界有三个真理
第一: 程序要运行的好好的,别贱贱的去重构.
第二:如果你修改了程序,还更改了环境.你丫死定了
第三:如果你改了程序,还换了环境,还用了你不太熟的东西.你死了都活该,必有诡异的事搞死你.
这群人就把这三点都赶上.程序本来好好的,非修改了一版.改了就改了呗.你们也没用啥Windows2008上特有的新特性.还把要求把程序从运行的好好的Windows2003迁移到Windows2008.(注意,我不是说不让你用Windows2008.但没事换环境,主不祥).迁就迁了.还找了个这些都不太熟的测试妹妹部署.天意,造化弄人.
上线以后就开始不断接到用户打来电话投诉.兄弟我企业A登陆正操作的好好的,点了个链接转身就变成企业B了.企业B的全部信息我都能看到.
开发公司一口咬定这是我服务的甲方公司的部署问题.甲方公司坚定的认为这是开发公司代码问题.但胳膊拧不过大腿.甲方一手派人查环境,一手要求开发方查代码.然后紧急把环境停了.
代码从早上十点查到查到晚上3点.开发方提出过各种可笑的理由.比如IP地址是电信的云云.然后就我就被拉过来做陪死鬼.叫我帮他们Review代码. 我从共享变量的角度看了一下(吐槽一下.里面一堆无聊的单件模式.也不知道带头理解的单件模式.你干脆全改成静态方法得了).感觉代码没问题. 就和甲方说"代码没问题.” 没想到人不太能太实在.甲方告知接着看.看出问题为止.不解决你就在这陪死. 操!操!操!操!
好吧.哥们实在感觉代码没问题.于是偷偷的上网搜一搜.经过一个小时的搜索.也不在哪看到个贴子回复里说,有可能是缓存问题.于是私下叫来配置管理的小妹妹,叫她给我开个环境我上去看看.发现是IIS7.5. 我们知道II7以后增加了一个牛B功能就是可能缓存动态内容.会不会是这个问题呢?死马当成活马医吧.在请示了甲方领导以后,我做了如下操作.
在IIS里打开要修改的站点
转到功能视图,选择输出缓存
新建一个规则
输入一个扩展名.aspx
点击用户模式缓存,选择Prevent all caching
同样的操作应用在内核模式缓存
如果你想看图文教程,请点这里
然后
问题解决了.然后我们先开开心心的回家了.
第二天,试图在另外一台机器上重现这个Bug,很遗憾.没有成功.
后来查到这可能是某个版本的Bug,你看看这人品
另外,如果你想查看IIS7现在的缓存内容.我告诉你一个命令.
netsh http show cachestate