程序开发 > C# > 正文

javascript 和 Application_BeginRequest 上传到服务器没有执行

亮术网 2020-08-23 本网原创

网站开发完成后,在本地调试没有任何问题,但上传到服务器却不能正常执行,这主要是由于本地电脑与服务器系统不相同所致。

一般来说,个人电脑所使用的系统版本普遍高于服务器,做过网站的都知道:租用服务器配置高价格直线上涨,系统版本越高要求硬件配置越高,出于省钱的原故只能先用低版本的系统。

网站在本地调试通过上传到服务器没有执行,通常 javascript 和 Global 中的方法(如:Application_BeginRequest)见得比较多,本文主要讨论这两种情况。

 

一、网站上传到服务器,javascript没有执行

这种情况的主要原因是 javascript 代码有误,既然如此为何在本地能正常执行。文章开头说了,个人电脑常常使用的操作系统版本比服务器高,而高版本的操作系统(如 Windows 7、10,Windows Server 2008 R2、2019)对 javascript 代码的要求有所降低;主要表现在:

只要 javascript 代码没有特别严重的问题能往下执行,则一些无关痛痒的小问题直接忽略;而低版本的操作系统(如 XP、Windows Server 2003)对 javascript 代码的要求高一些或说规则严一些,只要 javascript 代码有一点小问题立即终止执行返回。

网站上传到服务器,javascript没有执行举例:

假如要去掉文本输入框的值的空格这样一个简单的功能,代码如下:

<input type="text" id="testid" />

var obj = document.getElementById("testid");
  var val = obj.value.trim();

在 javascript 中,没有 trim() 这个过滤空格的方法;在 Windows 7 和 Windows Server 2008 R2 系统中,会忽略该方法的错误,XP 和 Windows Server 2003 系统发现没有 trim() 方法,则立即终止执行返回。

 

 

二、网站上传到服务器,Application_BeginRequest没被执行

首先应该检查是否把 Global.asax 文件上传到服务器,没有这个文件上,Global 中所有方法都不会被执行。如果有这个文件,通常是由于程序有错误;可以尝试输出错误,或者在 Application_BeginRequest 方法缓存一个值,在 aspx 页中输出这个值,看缓存值是否为空,为空说明代码有误,可以注释一些代码测试以找出有误的代码。