12031,终结你!

23日早上,我跟随千千万上班人的脚步,挤进了北京的地铁中,向北京站进发,去沈阳解决那个困扰我多日的12031。这次做好了在沈阳住上一夜的准备了,一定要把这个问题解决!刚上5号线时,人还挺多的,不过马上大部分人都下车转乘10号线去了,一路上倒也不挤,后来还有了个座。到车站时,离开车还有一个小时,坐在那又小睡了一下。9点20分,D5列车载着我准时出发。

 

不坐夜车的感觉挺好,就像早起上班一样。夜车让人感觉很辛苦:别人都在被窝里睡觉,我却在出差的途中。我靠过道坐,过到对面的女孩正在拿我作写生,难道我长得那么有特点?我瞟了一眼,似乎头发有点长。她在画我,我在写她,呵呵。她还有一些其它的写生素描,应该是学美术专业的吧,之前还听她打电话说考文化课的事。想起我以前也很喜欢画画的:临摹漫画,给别人写生。现在很难有那份闲情逸致了。

 

下午两点半,到达了目的地。进去后,发现屋里在开会,于是在门外等了一会。大概在三点多吧,在等待单总在大连那边下载QQ的时候,修正了一个视图。后来单总把QQ装好了,用远程协助,我亲自操作并看了一下实际的操作效果,没什么新鲜的,跟之前描述的一样。我查看了服务器上的IIS设置、网络设置,没什么特殊的。我开始从搜集的各种解决方案中挑选一些较为容易操作的试验,比如在webconfig中设置maxRequestLength="8192"、直接修改aspx文件添加ValidateRequest="false"、改变ScriptManager的超时属性等等,均告失败。我把ScriptManager控件的超时属性去掉,错误就变成了超时错误,跟用户最开始描述的一样。在IIS中加大站点的超时时间,依然无效。

 

正当我一筹莫展,表情越来越凝重时,远程操作看了一下其它的页面,发现并非所有的AJAX功能都有超时问题,而是只有带有gridview的页面有这个问题!好,问题的范围缩小了,应该是跟gridview有关的!于是用“updatepanel gridview timeout”做关键字GOOGLE了一下(往往在中文网页中找不到解决方案,而是老外那里讨论得很细致),找到了一篇在ASP.NET论坛(http://forums.asp.net)中的帖子:http://forums.asp.net/t/1091963.aspx,描述的问题跟我遇到的一样。这篇帖子中,有人作了这样一段回复:

 

Set the gridview EnableViewState="false", set all validation controls in the gridview EnableClientScript="false". The "conditional" or "always" setting is not relevant to the problem you are having. The problem is the amount of viewstate generated by the updatepanel combined with the gridview. I had a long post about this last week on this list at http://forums.asp.net/t/1165866.aspx

 

看来,问题很有可能是由于放在updatepanel中的gridview很容易产生太大的视图状态。我试着把gridview的EnableViewState属性设为false,果然,不会报错了!不过这样一来,排序之类的功能就失效了。看来问题果然出在视图状态上。是太大?那就压缩一下吧,记得在网上看到过。搜了一下,发现修改起来较为复杂,忽然想起,搜集的解决方案中有一个就是把视图状态保存在session中的,即在页面代码中重写这样一个函数:

 

protected override PageStatePersister PageStatePersister
{
    get { return new SessionPageStatePersister(this); }
}

 

最终,还是这个方案解决了问题,同时也保留了AJAX功能。没说的,立即把所有涉及gridview的页面都加上了这段代码。

 

之前在各个gridview页面加上了一个链接,用于在“全部显示”和“分页显示”两种状态之间切换,而且做成整页刷新,本来是想着作为解决12031问题的替代方案,但想想像排序等功能还是无法解决的,只要列表要刷新,就会有这个问题的。现在问题解决了,本想把这个功能改成局部刷新的,但是发现修改后,由于许多页面中这个链接没有放进updatepanel中,导致这个链接的文字无法改变了。想着改起来太麻烦,干脆就都删掉了。后来,又发现一个BUG,等全部弄完,已经快晚上8点了。最晚的一班动车D26已经于19点33分发车了,只好看看能否赶上21:25的K54了。

 

出了中电投的大门,就马上开始找出租车。这个地方很偏,出租车很少。不过门口有公共汽车站,寻思着坐一趟车到市里再打车也行,实在来不及就在车站旁边的宾馆住一夜。结果一看,这的公车都已经在18点、19点发了末班车了!OMG!我一边往前走,一边找着出租车。还好,不久就截到了一辆,上车,直奔沈阳北站。到了沈阳北站,立马奔向售票处,居然还买到了一张下铺。终于可以安安心心地吃晚饭了。在旁边的快餐店,点了一份红烧肉和一份酸菜汤,想着慰劳一下自己。不过红烧肉太难吃,太咸,没我自己做的好吃。火车上,半夜的暖气烧得还是那么足,热死人了。第二天早上八点半,终于踏进了家门。自此,在沈阳上的一天班结束了。

 

回到家后,洗漱了一下,老妈给准备了早餐,九点半,继续向学校进发,参加教研组的讨论会。在食堂午饭后,终于能回家休息了。

 

PS:不过刚才发现,在删除那个“全部显示”和“分页显示”的切换链接时,相应的updatepanel的trigger有个页面没有删干净,留下了BUG。想办法远程更新一下吧……

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值