基于ASP的编程常见问题

编程|问题

基于ASP的编程常见问题
  
    基于ASP技术开发Internet/Intranet上的MIS系统是非常方便的,首先是它借用了ADO技术和概念,同时通过ODBC访问数据库,达到了充分的灵活性和多平台性,另外,由于ASP利用VBS和JS脚本语言,也保证大多数开发者很快进入开发过程,减少了学习的过程。
    但是,由于ASP是基于Internet/Intranet方式的,它和传统的C/S结构毕竟有所不同,这样在开发中也要注意一些细节问题。本文讲述常见的一些问题,并给出解决方法。
  
  问题描述
  
  A. 无法正确运行ASP
  
    当我们建立了一个ASP文件,并且符合语法时,通过浏览器输入以下地址,或通过资源管理器打开浏览:
  c:\inetpub\wwwroot\a.asp
  将出现无法运行的错误,并提示权限不对或文件无法访问,原因是,ASP文件首先要求站点是具备“执行(脚本)”属性的;然后要求按照URL格式输入地址,而不是DOS格式,所以,请改正这两个错误。
  
  B. 程序移动位置后,无法访问数据库
  
    这种错误首先在ODBC,如果ODBC数据源设置正确,那么需要注意ASP中打开数据库的命令:Conn.Open 的参数是否正确。如果正确,则需要注意是否使用了global.asa文件,该文件是ASP连接数据库的配置文件,该文件内容如下:
  <SCRIPT LANGUAGE="VBScript" RUNAT="Server">
  'You can add special event handlers in this file that will get run automatically when special Active Server Pages events
  'occur. To create these handlers, just create a subroutine with a name from the list below that corresponds to the event
  'you want to use. For example, to create an event handler for Session_OnStart, you would put the following code into this
  'file (without the comments):
  'EventName Description
  'Session_OnStart Runs the first time a user runs any page in your application
  'Session_OnEnd Runs when a user's session times out or quits your application
  'Application_OnStart Runs once when the first page of your application is run for the first time by any user
  'Application_OnEnd Runs once when the web server shuts down
  
  </SCRIPT>
  <SCRIPT LANGUAGE=VBScript RUNAT=Server>
  Sub Session_OnStart
  '==Visual InterDev Generated - DataConnection startspan==
  '--Project Data Connection
  Session("Customers_ConnectionString")="DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=;APP=Microsoft(R)Developer Studio;WSID=GREGLEAK;DATABASE=Customers"
  Session("Customers_ConnectionTimeout") = 15
  Session("Customers_CommandTimeout") = 30
  Session("Customers_RuntimeUserName") = "sa"
  Session("Customers_RuntimePassword") = ""
  '==Visual InterDev Generated - DataConnection endspan==
  End Sub
  </SCRIPT>
  要注意其中的DSN,其中SERVER后一定是数据库服务器名称,如果该处不正确,需要改正。另外是UID和PWD是否正确;还有,如果OPEN命令使用了SESSION,则需要注意
  Session("Customers_RuntimeUserName") = "sa"
  Session("Customers_RuntimePassword") = ""
  是否正确。
  
  C. RUNAT使用问题
  
    在脚本语法中,有RUNAT参数,表示该脚本是运行在服务器上还是客户机上。如果有RUNAT=SERVER则脚本运行在服务器上,由ASP解释程序来解释执行,并将结果传递给WWW服务器;否则就是运行在客户机上,由浏览器的脚本虚拟机解释执行,这时,和一般的脚本没有区别。所以,一定要注意ASP语法中的命令,如:REQUEST,QUERYSTRING,WRITE等命令或对象必须在具备RUNAT参数的脚本运行;而访问HTML的FORM对象的脚本一定没有RUNAT参数,因为HTML的FORM是客户机方面的对象,服务器无法访问。
  
  D. 无法向SQL SERVER插入日期字段
  
    如果遇到必须使用美国日期格式插入日期的情况,则需要在服务器的区域设置上设置中国长日期格式,请特别注意,ASP是在服务器上运行的,生成的HTML结果传递给浏览器,所以,所有格式设置必须在服务器上。
  
  E. 如何向客户机推送提示信息
  
    如果在服务器上判断访问错误,如注册失败、无权操作记录等需要提示用户的信息。这个信息需要推送到客户机上,并出现提示窗口,这是经常遇到的问题。这个时候,必须使用动态页面的方式,因为错误是在服务器上判断的,而提示是在浏览器上出现的。我们 可以使用下面的ASP来推送错误:
  on error resume next
  conn=server.createobject("adodb.connection")
  conn.open "pubs","wlf",""
  '如果注册失败则错误数大于0
  if conn.errors.count? then
  ‘以下代码生成客户机上的脚本语言,提供给浏览器执行
  response.write "<script language=javascript>" & chr(13)
  response.write "{" & chr(13)
  response.write " window.alert("您无权访问数据库!")" & chr(13)
  response.write "}" & chr(13)
  response.write "</script >" & chr(13)
  end if
  
  F. 客户机尽量使用固定IP地址
  
     由于ASP连接数据库是定时的,默认是:
  Session("Customers_ConnectionTimeout") = 15
  Session("Customers_CommandTimeout") = 30
  两个设置决定的时间,超时后自动断开连接,所以,当刷新页面重新执行ASP代码时,如果IP分配时间不够(动态IP分配需要时间,比静态长很多!),可能无法连接上,则出现错误信息,所以尽量用静态IP地址。
  
  总结
  
    使用ASP编程是很方便的。由于ADO跨越了ODBC,形成具备多线程处理能力的数据库操作方式,并且是在服务器上运行,虽然增加了服务器的压力,好在现在的服务器(哪怕是PC服务器)处理能力都非常强,这样反而发挥了服务器的效率。另外,由于ASP可以和ActiveX控件进行良好的接口,也使开发者容易根据自己的需要扩充程序,并直接建立在ASP编程环境上,唯一需要注意的是,一定要以Internet/Intranet的思路设计和编写程序,否则将事倍功半。

时间: 2024-12-22 20:53:26

基于ASP的编程常见问题的相关文章

ASP的Internet/Intranet编程常见问题

基于ASP技术开发Internet/Intranet上的MIS系统是非常方便的,首先是它借用了ADO技术和概念,同时通过ODBC访问数据库,达到了充分的灵活性和多平台性,另外,由于ASP利用VBS和JS脚本语言,也保证大多数开发者很快进入开发过程,减少了学习的过程. 但是,由于ASP是基于Internet/Intranet方式的,它和传统的C/S结构毕竟有所不同,这样在开发中也要注意一些细节问题.本文讲述常见的一些问题,并给出解决方法. 问题描述 A. 无法正确运行ASP 当我们建立了一个ASP

基于asp.net的百度地图API编程

问题描述 基于asp.net的百度地图API编程 在地图上的给某个覆盖物添加事件,点击这个覆盖物后出现信息框,信息框的数据从数据库里读出. 解决方案 http://developer.baidu.com/map/jsdemo.htm#d0_2http://developer.baidu.com/map/jsdemo.htm#d0_1http://developer.baidu.com/map/jsdemo.htm#d0_4http://developer.baidu.com/map/jsdemo

基于RequireJS和JQuery的模块化编程——常见问题全面解析_javascript技巧

由于js的代码逻辑越来越重,一个js文件可能会有上千行,十分不利于开发与维护.最近正在把逻辑很重的js拆分成模块,在一顿纠结是使用requirejs还是seajs的时候,最终还是偏向于requirejs.毕竟官方文档比较专业嘛... 不过即便是有完整的官方文档,仍然遇到不少的问题,比如jquery-ui的使用. 下面就循序渐进的讲解一下我遇到的问题,以及解决的办法. 关于AMD和CMD的理解 AMD(异步模块定义)的典型就是requirejs,而CMD(通用模块定义)的典型是淘宝的seajs.

基于RequireJS和JQuery的模块化编程——常见问题解析

由于js的代码逻辑越来越重,一个js文件可能会有上千行,十分不利于开发与维护.最近正在把逻辑很重的js拆分成模块,在一顿纠结是使用requirejs还是seajs的时候,最终还是偏向于requirejs.毕竟官方文档比较专业嘛... 不过即便是有完整的官方文档,仍然遇到不少的问题,比如jquery-ui的使用. 下面就循序渐进的讲解一下我遇到的问题,以及解决的办法. 关于AMD和CMD的理解 AMD(异步模块定义)的典型就是requirejs,而CMD(通用模块定义)的典型是淘宝的seajs.

编程-各位大神有没有基于asp.net的大学毕业生就业信息管理系统的源码和论文

问题描述 各位大神有没有基于asp.net的大学毕业生就业信息管理系统的源码和论文 主要的 功能是毕业生信息管理模块.招聘信息模块.求职信息模块.就业推荐功能.毕业生就业信息管理模块.就业信息分析模块.其他辅助功能等.开发环境和语言是Visual Studio.SQL Server.C#等,还有是对专业.区域的就业进行统计:急求,各位大神帮帮忙 解决方案 目测是信管/计院的本科生毕业论文,还有最多三个月时间,加油吧少年!!! 解决方案二: 各位大神有的话可以分享下 解决方案三: 尝试着自己写一下

基于ASP.NET AJAX技术开发在线RSS阅读器(上篇)

[注]本文测试环境:Windows XP专业版+Visual Studio 2005+整套ASP.NET AJAX框架+ASP.NET RSS Toolkit+SQL Server 2005. 一.RSS技术简介 RSS是一种描述和同步网站内容的XML格式,已经成为越来越流行的网站内容订阅技术.通过这种技术,网站可以极大地提高广大网站用户和网站数据之间的数据交互. RSS阅读软件可以分为桌面离线式和在线式两大类.有了这种工具,用户只需要添加初始其所关注的RSS网址,以后系统会自动更新相关内容,网

ASP.NET编程入门随想之宽容

asp.net|编程 古老的山谷中村民生活简单而富足,山谷中有个陡峭的山岩,传说山岩那边有着肥美的牧场,山岩下有累累白骨,那是企图攀越山岩,去寻找传说中的牧场的人的尸骨,于是人们制定了律法,禁止攀越山岩,禁止谈论和寻找传说的牧场,声称那是神的牧场,这些律法由守旧老人维护着.一天夜里一个浑身是伤的人步履蹒跚的回到村里,他告诉村民们,他找到了传说中的牧场并希望村民跟随前往.但守旧老人的威严和律法的神圣压制了村民的躁动,漂泊者也被处死.一天灾难降临山谷.尽管守旧老人试图维护受到越来越多的村民的求生欲望

ASP.NET编程入门随想之宽容(修改版)

asp.net|编程 相关文章:ASP.NET编程入门随想之宽容 古老的山谷村民生活富足,守旧老人维护着经典和秩序.一位不满现状的漂泊者却宣称外面有更好的世界在等着大家,并鼓动村民跟随前往.但守旧老人的威严和律法的神圣压制了村民的躁动,漂泊者也被处死.一天灾难降临山谷.尽管守旧老人依然试图维护经受村民的求生欲望挑战的律法.但暴动还是发生,老人们被击败,新的道路和新的生活被村民找到.怀着感恩之心,后人把以前的漂泊者奉为先知,尽管他早已尸骨无存. -- 房龙<宽容•序言> ■ 宽容 – W3C 的

ASP.NET编程入门随想之信客

asp.net|编程 记得早年在乡间,对外的通信往来主要依靠一种特殊职业的人:信客.外出谋生的人多了,少不了要带几封平安家信.捎一点衣物食品的,那就用得着信客了.信客要有一点文化,知道各大码头的情形,还要一副强健的筋骨,背得动重重的行李.信客沉重的脚步,是乡村和城市的纽带. -- 余秋雨<文化苦旅·信客> ■ 一个馒头引发的血案 - 回发与事件 基于WEB的分布式系统中,用户往往是通过提交表单,浏览器产生相应的HTTP POST请求来完成交互过程,这个过程称为回发(PostBack).在同一个