柔情似水 发表于 2015-1-16 22:31:52

ASP教程之ASP的Internet/Intranet编程罕见成绩

asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。基于ASP手艺开辟Internet/Intranet上的MIS体系长短常便利的,起首是它借用了ADO手艺和观点,同时经由过程ODBC会见数据库,到达了充实的天真性和多平台性,别的,因为ASP使用VBS和JS剧本言语,也包管年夜多半开辟者很快进进开辟历程,削减了进修的历程。
  可是,因为ASP是基于Internet/Intranet体例的,它和传统的C/S布局究竟有所分歧,如许在开辟中也要注重一些细节成绩。本文报告罕见的一些成绩,并给出办理办法。
成绩形貌
A.没法准确运转ASP

  当我们创建了一个ASP文件,而且切合语法时,经由过程扫瞄器输出以下地点,或经由过程资本办理器翻开扫瞄:
c:inetpubwwwroota.asp
将呈现没法运转的毛病,并提醒权限不合错误或文件没法会见,缘故原由是,ASP文件起首请求站点是具有“实行(剧本)”属性的;然后请求依照URL格局输出地点,而不是DOS格局,以是,请更正这两个毛病。
B.程序挪动地位后,没法会见数据库

  这类毛病起首在ODBC,假如ODBC数据源设置准确,那末必要注重ASP中翻开数据库的命令:Conn.Open的参数是不是准确。假如准确,则必要注重是不是利用了global.asa文件,该文件是ASP毗连数据库的设置文件,该文件内容以下:
<SCRIPTLANGUAGE="VBScript"RUNAT="Server">
YoucanaddspecialeventhandlersinthisfilethatwillgetrunautomaticallywhenspecialActiveServerPagesevents
occur.Tocreatethesehandlers,justcreateasubroutinewithanamefromthelistbelowthatcorrespondstotheevent
youwanttouse.Forexample,tocreateaneventhandlerforSession_OnStart,youwouldputthefollowingcodeintothis
file(withoutthecomments):
EventNameDescription
Session_OnStartRunsthefirsttimeauserrunsanypageinyourapplication
Session_OnEndRunswhenauserssessiontimesoutorquitsyourapplication
Application_OnStartRunsoncewhenthefirstpageofyourapplicationisrunforthefirsttimebyanyuser
Application_OnEndRunsoncewhenthewebservershutsdown
</SCRIPT>
<SCRIPTLANGUAGE=VBScriptRUNAT=Server>
SubSession_OnStart
==VisualInterDevGenerated-DataConnectionstartspan==
--ProjectDataConnection
Session("Customers_ConnectionString")="DRIVER={SQLServer};SERVER=(local);UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=GREGLEAK;DATABASE=Customers"
Session("Customers_ConnectionTimeout")=15
Session("Customers_CommandTimeout")=30
Session("Customers_RuntimeUserName")="sa"
Session("Customers_RuntimePassword")=""
==VisualInterDevGenerated-DataConnectionendspan==
EndSub
</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.没法向SQLSERVER拔出日期字段

  假如碰到必需利用美国日期格局拔出日期的情形,则必要在服务器的地区设置上设置中国永日期格局,请出格注重,ASP是在服务器上运转的,天生的HTML了局传送给扫瞄器,以是,一切格局设置必需在服务器上。
E.怎样向客户机推送提醒信息

  假如在服务器上判别会见毛病,如注册失利、无权操纵纪录等必要提醒用户的信息。这个信息必要推送到客户机上,并呈现提醒窗口,这是常常碰到的成绩。这个时分,必需利用静态页面的体例,由于毛病是在服务器上判别的,而提醒是在扫瞄器上呈现的。我们可使用上面的ASP来推送毛病:
onerrorresumenext
conn=server.createobject("adodb.connection")
conn.open"pubs","wlf",""
假如注册失利则毛病数年夜于0
ifconn.errors.count>0then
‘以下代码天生客户机上的剧本言语,供应给扫瞄器实行
response.write"<scriptlanguage=javascript>"&chr(13)
response.write"{"&chr(13)
response.write"window.alert("您无权会见数据库!")"&chr(13)
response.write"}"&chr(13)
response.write"</script>"&chr(13)
endif
F.客户机只管利用流动IP地点

  因为ASP毗连数据库是准时的,默许是:
Session("Customers_ConnectionTimeout")=15
Session("Customers_CommandTimeout")=30
两个设置决意的工夫,超时后主动断开毗连,以是,当革新页面从头实行ASP代码时,假如IP分派工夫不敷(静态IP分派必要工夫,比静态长良多!),大概没法毗连上,则呈现毛病信息,以是只管用静态IP地点。
总结
  利用ASP编程是很便利的。因为ADO超过了ODBC,构成具有多线程处置才能的数据库操纵体例,而且是在服务器上运转,固然增添了服务器的压力,幸亏如今的服务器(哪怕是PC服务器)处置才能都十分强,如许反而发扬了服务器的效力。别的,因为ASP能够和ActiveX控件举行优秀的接口,也使开辟者简单依据本人的必要扩大程序,并间接创建在ASP编程情况上,独一必要注重的是,必定要以Internet/Intranet的思绪计划和编写程序,不然将事半功倍。
asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。

兰色精灵 发表于 2015-1-19 16:11:55

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

不帅 发表于 2015-1-26 21:38:20

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

只想知道 发表于 2015-2-4 21:03:23

不能只是将它停留在纸上谈兵的程度上。

admin 发表于 2015-2-10 10:44:23

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

飘灵儿 发表于 2015-3-1 09:44:54

Session:这个存储跟客户端会话过程的数据,默认20分钟失效

金色的骷髅 发表于 2015-3-10 13:25:33

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

老尸 发表于 2015-3-24 03:57:06

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
页: [1]
查看完整版本: ASP教程之ASP的Internet/Intranet编程罕见成绩