WebForm_PostBackOptions未定义 解决方法

[ 2011年8月29日 ]
Tags:  ASP.NET  

最近遇到一个问题,一旦ASP.NET的页面有验证控件,服务器就死机,刚开始还以为是程序的问题,但是查了半天没有发现一点问题,最后翻遍网页,终于找到解决办法了,现在分享给大家

系统本来用得好好的,忽然有用户报错,说点按钮不顶用了;

我试了一下,果然,而且大多数的服务器控件都不能用了;在浏览器窗口的左下角,出现黄色的叹号,双击打开,显示如题的错误信息;“WebForm_PostBackOptions未定义”;

这是一个javascript的错误提示,按道理说是客户端脚本错误,与.net应该无关,但是稍了解一下asp.net框架就会知道,asp.net的所有控件,到了客户端都会生成html与javascrpt代码;这显然是与.net相关的javascript代码报错了。

不知道咋回事儿;去网上搜了一下,解决方法只有一种,就是添加axd的映射;如图:

但是axd文件的映射默认是有的,除非有人刻意把它去掉了,所以才需要再手工加上去;而我的服务器是自己管理,我没有去动过的;应该不是因为这个原因;

我还是按照上面的方法查看了一下,IIS没有问题,该有的映射都有,没什么不正常的;但我的问题还依然没有解决;去网上再搜,也没有其它的方法可参考的;

不过,想想,既然是axd文件的问题,就从它入手好了;打开一个aspx的文档(这是指,在浏览器中查看aspx页面的HTML源码),在页面的头部会有类似的一段代码:
<script src="/WebResource.axd?d=enO4GmuCFPQ-aRP3AtyjOezREIh1F2__Pcm7PqCMago8S3Ai_NH5atoAxKmOQ6Ir0&amp;t=633004894900000000" type="text/javascript"></script>

上面的代码是调用javascript的代码,而src却链接了一个动态页,可想而知,这个js文件是动态生成的喽;如果它生成出错,页面调用不到js文件,自然会提示javascript的错误,提示找不到相关对象。

把上面src中的代码复制下来,放到浏览器地址中运行;其实就是把它当做一个aspx页面来执行;

http://127.0.0.1/WebResource.axd?d=enO4GmuCFPQ-aRP3AtyjOezREIh1F2__Pcm7PqCMago8S3Ai_NH5atoAxKmOQ6Ir0&amp;t=633004894900000000

错误报出来了;在哪个文件的哪一行,错误信息与aspx文档报错的方式是一样的;

这样我就很清楚的知道是哪里出错了;

至于我的错误,我就不说了,(是我写在Global.asax中的一个代码出点问题,影响到了所有的动态页);我要说的是,出现“WebForm_PostBackOptions未定义”的错误时,我们如何准确找出错误位置的方法;

同样的问题,有一次是出在了httpmodule代码中,也是用上面的方法获得错误提示的。

同时这个问题是在四博互联的服务器上发现的,所以真心的给四博的管理层提点意见,赶紧提高技术实力,要不然出现这种问题还的让客户想办法解决,的却是有点说不过去。

发布:xunzhaohaizi | 分类:网站编程 | 评论:0 | 引用:0 | 浏览:
发表评论