ASP代码在终端和服务器端浏览器中有不同的表现

今天在调试功能页面时遇到一件非常奇怪的事,让我非常不明就里。 

网站的服务器环境是windows server 2008 R2 enterprise 64位,IIS版本为7.5。

同样的网站在不同的终端电脑打开运行的结果是不一样的,郁闷点一。再就是明明在服务器端开启了调试模式,但在终端浏览器里就是不显示具体的错误信息,而只显示“500 - 内部服务器错误”这样的,郁闷点二。

先说第一点。因为条件关系,我是直接远程连接到服务器上去修改代码,然后本地浏览器测试,显示有错,因为一直不显示具体的错误代码,看不到哪里出错(只显示“500 - 内部服务器错误”),所以我就直接在服务器用浏览器打开网站测试,发现没有错误提示,一切正常。开始怀疑浏览器的JS版本或许不同,后来发现没有相关的JS代码执行,只执行了ASP代码,应该与浏览器没有直接关系。

第二点也一直没解决,因为经常都不能显示错误信息,只显示所谓的“友好错误信息”,恨浏览器的程序员。

折腾了一下午,始终没找到原因,后来想还应该是ASP代码的问题,于是就又检查起代码来,在不同的地方设置停止运行的断点,各个小功能测试,均一无所获。

后来看到跳转的代码,想到按常理应该用Response.End来结尾,以免产生意想不到的事,于是就有了下面的代码,于是上面的那个神奇的错误居然就被我无意中解——决——了!!!

ASP/Visual Basic代码
  1. Response.Write"<script>alert('操作成功');this.location.href='info_list.asp';</script>"  
  2. Response.End    '----或许这句就是关键------  

解决问题的关键语句是第二行代码。也就是说,在2008服务器端的环境下,没有第二行代码也是没有问题的,而在客户端没有这行代码却直接出错,程序是有语法错误的。为什么呢?为什么呢?

到目前为止,依我的水平,我还是不明白为什么,但我估计“this,location,href”很可能不会马上终止本页的ASP代码执行,是会执行后面的代码,然后再跳转到后面的目标页。是这样的吗?

反正加上第2句代码后,问题就没有了。

我的神呀。



[本日志由 ancher 于 2017-11-11 12:06 AM 更新]
上一篇: 吃粉还是吃面?
下一篇: 中国电信是怎么啦?
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ASP 调试 页面结果
相关日志:
评论: 0 | 引用: 0 | 查看次数: 641
发表评论
你没有权限发表评论!