你好,欢迎访问远方教程PC版!
广告位招租
网站首页 >> ASP教程 >> ASP提高策略 >> 文章内容

ASP提高篇:2.3 深入研究Application和Session对象(第4页)

[日期:2014-11-08]   来源:远方教程  作者:远方教程   阅读:5915次[字体: ] 访问[旧版]
 捐赠远方教程 

  四、本文实例中值得引起注意的两点

  ⒈OnEnd事件里的session.contents
  刚开始接触global.asa的朋友经常会将上面Session_OnEnd事件里的
  if session.contents("pass") then 写成
  if session("pass") then,
  这样的话系统不会提示错误,但是永远也不会执行then后面的内容,这是因为在OnEnd事件里禁止使用Session对象,但是可以用Session对象的集合来调用session变量。因为IIS并没提示任何错误信息,所以笔者曾经在这上面浪费了很多时间。在此希望大家引以为鉴!
  ⒉Application_OnStart事件里用Server.MapPath获取数据库的物理地址时应使用绝对地址为了说明这个问题,大家可以做个实验:将上面Application_OnStart事件里的
  application("db")=Server.MapPath("\bbs.mdb")改为:
  application("db")=Server.MapPath("bbs.mdb")
然后在d:\inetpub\wwwroot\目录下建立一个test子目录,写一个temp.asp在test目录里。
  ====test.asp====
  <%response.write application("db")%>
  ================
再将temp.asp拷贝一份放在根目录下(d:\inetpub\wwwroot\)。用记事本打开global.asa,再打开两个浏览器,浏览器A输入地址http://localhost/temp.asp,按回车,将在浏览器上输出:
  d:\inetpub\wwwroot\bbs.mdb
然后,在记事本的窗口上点"文件"菜单,选"保存"(使global.asa的修改时间改变,从而使IIS重启动所有服务),再在浏览器B输入地址http://localhost/test/temp.asp,按回车,在浏览器上输出的是:
  d:\inetpub\wwwroot\test\bbs.mdb
global.asa文件虽然是放在站点根目录下,但是如果在server.mappath中使用的是相对地址,而触发Application_OnStart事件的用户第一次访问的页面又不是属于根目录的话,得到数据库的物理地址将不会是期望的结果,希望大家要特别小心。

图片展示
 
相关评论
站长推荐