html5中文学习网

您的位置: 首页 > 网络编程 > ASP编程 » 正文

WINDOWS 2000搭ASP3.0和IIS5.0_ASP教程_编程技术

[ ] 已经帮助:人解决问题
相信大部分的人目前所用的ASP版本都是搭在IIS3.0或IIS4.0中的ASP2.0,伺服器平台也多是NT4.0,著WINDOWS 2000 即在二月十七世,由於之前多媒都曾有WINDOWS 2000在伺服器性能的充以及各版本(伺服器版本,人用版本....)的介,所以大家都迫不及待的想知道WINDOWS 2000到底多了哪些大的功能,身NT 伺服器使用者的我然也不可不知到底微在方面改善了多少?不由於本版面主要是在ASP的用,所以者搭在WINDOWS 2000中的ASP3.0和IIS5.0之前IIS3.0或IIS4.0中的ASP2.0有增加了哪些元件或者是充的性方法明,,ASP20.ASP3.0有多的不同,比引人注意的是新增了伺服器物件方法(METHOD)---SERVER.EXECUTE和SERVER.TRANSFER以及一新增加的物件--ASPERROR物件。

SERVER.TRANSFER方法

以往ASP2.0中控制之的大部分都是靠Response.Redirect完成,但是一般人可能不得Response.Redirect在用上是相笨拙的,在ASP理Response.Redirect是先一息至客端的器,告知客端的器入一新的址,客端器接收到息之後再回一新址息回伺服器端,然後伺服器端再客端器向到新的址,在路蓬勃展的今天,的做法必路的堵塞情形更大的,而也是使用者站管理者所不於到的,了取代Response.Redirect笨方法,ASP3.0加入了一新的伺服器方法--SERVER.TRANSFER,把Response.Redirect中客端伺服器端的通全部移到伺服器上,所有的理程序全部交由伺服器行,然啦!!在法用的念上Response.Redirect太大的分,在中,所有的域和用程式都保持不,看看下面的明:


SERVER.TRANSFER(PATH)

PATH所定的是控制移到的目的之址,跟Response.Redirect後面所接的

有曲同工之妙,例,

ASP1.asp如下:

<HTML>
<BODY>
<%
Response.Write Session.SessionID

Response.Write ("<BR>")

Response.Write("我要到下一去!! <BR>")

Server.Transfer("ASP2.asp")
%>

ASP2.asp如下
<HTML>
<BODY>
<%

Response.Write Session.SessionID
%>

ASP1.asp行果如下

一SessionID
我要到下一去!!
同的SessionID

很明的可以看出Response.RedirectSERVER.TRANSFER的不同了吧!!

SERVER.EXECUTE方法

SERVER.EXECUTE跟SERVER.TRANSFER相同的是都是在行Script行程序的移,唯一不同的是SERVER.TRANSFER最後控制交被呼叫的Script案,而SERVER.EXECUTE最後控制移被呼叫者本身,也就是行SERVER.EXECUTE的Script案被呼叫的Script案做自己本身的一部份,在念上,Include的做法是一的,多高言呼叫副程式的做法也相同,基本上伺服器端允SERVER.EXECUTE修改Http,但是如果被行的案企在送息至客端器之後修改Http就生已 HTTP 入用端器。任何 HTTP 的所做的修改必要在入容之前的。看看下面的例:
ASP1
<HTML>
<BODY>
<% Response.Write("你在看我? <BR>")
Server.Execute("asp2.asp")
%>
</BODY>
</HTML>
ASP2
<HTML>
<BODY>
<% Response.Write("你可以再近一。")%>
</BODY>
</HTML>
ASP1.asp行果是

你在看我?
你可以再近一。

  看完了新增加的伺服器物件性之後,接下我看看新增加的ASP建元件--ASPERROR元件,是ASP3.0所提供的一全新的元件,他站管理者能完全掌控因ASP所生的,是前版本所法做到的,在前版本中要捕捉因ASP所生的是不可能的,多只能用VBScript的On Error Resume Next捕捉到因Script所生的,任何COM或ASP所生的都法捕捉,著ASP3.0的到,些都迎刃而解。

  了要使用ASPERROR物件你必使用IIS的Http控制,不得大家我站之後有有,你在www.pc-net.com.tw/址後打一些字然後再按Enter你址不存在出如下的面:

  就叫做自定面,大家知道是如何做到的?打NT的IIS伺服器管理之後,在站台名之上滑鼠右,容(最下面的)你可以看到看看下面的面(由於者的工作平台是Window 98)所以只好藉由平台(英文版的NT大家做一明)。

  你可以看到多的控制,右上角的Custom Errors(自定),然後取404,你看到在容部分有一路的描述C:/WINNT|help/common/404b.htm
案放置的容就是在描述所查的址不存在生的息,404b.htm的原始如下:

404b.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>

<head>
<style>
a:link {font:9pt/12pt 新明; color:red}
a:visited {font:9pt/12pt 新明; color:#4e4e4e}
</style>
<meta HTTP-EQUIV="Content-Type" Content="text-html; charset=big5">
<title>HTTP 404 找不到</title>
</head>
<script>

function Homepage(){
// in real bits, urls get returned to our script like this:
// res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm

//For testing use DocURL = "res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm"
DocURL = document.location.href;

//this is where the http or https will be, as found by searching for :// but skipping the res://
protocolIndex=DocURL.indexOf("://",4);

//this finds the ending slash for the domain server
serverIndex=DocURL.indexOf("/",protocolIndex + 3);

//for the href, we need a valid URL to the domain. We search for the # symbol to find the beginning
//of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker.
//urlresult=DocURL.substring(protocolIndex - 4,serverIndex);
BeginURL=DocURL.indexOf("#",1) + 1;
if (protocolIndex - BeginURL > 7)
urlresult=""

urlresult=DocURL.substring(BeginURL,serverIndex);

//for display, we need to skip after http://, and go to the next slash
displayresult=DocURL.substring(protocolIndex + 3 ,serverIndex);

// Security precaution: must filter out "urlResult" and "displayresult"
forbiddenChars = new RegExp("[<>/'/"]", "g"); // Global search/replace
urlresult = urlresult.replace(forbiddenChars, "");
displayresult = displayresult.replace(forbiddenChars, "");

document.write('<A target=_top HREF="' + urlresult + '">' + displayresult + "</a>");

}

</script>

<body bgcolor="white">
<object id=saOC CLASSID='clsid:B45FF030-4447-11D2-85DE-00C04FA35C89' HEIGHT=0 width=0></object>

<table width="400" cellpadding="3" cellspacing="5">
<tr>
<td id="tableProps" valign="top" align="left"><img id="pagerrorImg" SRC="http://edu.cnzz.cn/NewsInfo/pagerror.gif"
width="25" height="33"></td>
<td id="tableProps2" align="left" valign="middle" width="360"><h1 id="errortype"
style="COLOR: black; FONT: 12pt/15pt 新明"><span id="errorText"><b>找不到</b></span></h1>
</td>
</tr>
<tr>
<td id="tablePropsWidth" width="400" colspan="2"><font
style="COLOR: black; FONT: 9pt/12pt 新明">查的可能已移除、更名或者法使用。</font></td>
</tr>
<tr>
<td id="tablePropsWidth2" width="400" colspan="2"><font id="LID1"
style="COLOR: black; FONT: 9pt/12pt 新明"><hr color="#C0C0C0" noshade>
<p id="LID2">下列:</p><ul>
<li id="list1">如果在址列入址,定未拼任何料。<br>
</li>
<li id="list2"> <script> Homepage(); </script> 首,然後查您想索取之的。
</li>
<li id="list3">按<a href="javascript:history.back(1)"><img valign=bottom border=0 src="http://edu.cnzz.cn/NewsInfo/back.gif"> [上一] </a>按,移到其它。</li>
<li ID="list4">按一下<a href=""><img border=0 src="http://edu.cnzz.cn/NewsInfo/search.gif" width="16" height="16" alt="http://edu.cnzz.cn/NewsInfo/search.gif (114 位元)" align="center"> [搜] </a>找 Internet 。 </li>
</ul>
<p><br>
</p>
<h2 id="ietext" style="font:9pt/12pt 新明; color:black">HTTP 404 - 找不到案<br>
Internet Explorer <BR>
</h2>
</font></td>

</tr>
</table>
</body>
</html>

一般未使用自定之前,你所看到的面如下所示

  至於色那一段址超的部分是透404b.htm中Homepage()函解析所得的,要使用自己所定的面有方式可以完成,第一是直接自己所做的面存到C:/WINNT/help/common/404b.htm得名要取一,第二是面存到你想存放的目之下,然後直接修改站台容中自定中的面存放路,如下所示:

其中的http://www.yourserver.com/404.htm就是以URL基的存放路。

在IIS4.0中我只能捕捉到404的息,但是IIS5.0能利用ASP程式捕捉伺服器用程式500和100(在或行ASP程式所生的)的息,在捕捉到息之後行你想行的ASP程式,譬如使用者向到某,的方式使用者不必再忍受一但路遭遇到而所的困境,因使用者多半不得生什事,如果透站管理告知使用者使用者得更心。
ASPERROR物件如何使用呢?基本上他必搭配SERVER物件的新方法GetLastError使用,因ASPERROR物件是透Server.GetLastError方法回息的。譬如你IIS5.0定成捕捉到伺服器用程式500或100息之後使用者向到Error.asp,利用Error.asp描述所生的,我看看Error.asp在做些什事。
Error.asp

<%
Dim objLastASPError

'建立伺服器物件(取得ASP所生的最後一)

Set objLastASPError = Server.GetLastError

'描述情
%>

  伺服器遭遇如下的:<BR>
描述: <%=objLastASPError.Description%><BR>
: <%=objLastASPError.Category%><BR>
生的案: <%=objLastASPError.File%><BR>
元件: <%=objLastASPError.Number%><BR>

  基本上ASPError物件有多性,而些性通通都是要靠建立伺服器物件,以伺服器物件中的GetLastError方法回息,我看看ASPError物件有哪些性:
ASPCODE:回IIS所生的

NUMBER:回COM物件所生的

SOURCE:回生的那段原始程式

CATEGORY:如果是ASP部生,那回是COM是手稿言的

FILE:回生的ASP案名

LINE:指出是哪一行程式生,回行

DESCRIPTION:回短息

ASPDESCRIPTION:回息

  基本上就是IIS5.0中的ASP3.0和IIS4.0中的ASP2.0所不同之,然啦,有多小地方也改了,只是比不受人注意所以有出,像IIS4.0中Response.Buffer的值是False,若使用者需要再其,但是IIS5.0了提效能直接就值定True,奇怪,既然能提效能什IIS4.0要他定False,打去比吧!!我也不知道。
YgBHTML5中文学习网 - HTML5先行者学习网
YgBHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助