• 沒有找到結果。

Web数据库技术 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "Web数据库技术 - 万水书苑-出版资源网"

Copied!
11
0
0

加載中.... (立即查看全文)

全文

(1)第 2 章 ASP 及其运行环境. 本章学习要点   . ASP 相关概念与工作方式 Web 服务器的配置 简单 ASP 程序的编写. 2.1. ASP 概述. Web 平台是作为在 Internet 上共享文件的平台而发展起来的。现在它已经不仅仅用于简单 的文件发布了,越来越多的商业站点开始引用复杂的编程逻辑,应用复杂的后端进程为用户创 建内容丰富的实例。同时,Web 技术在企业内部的 Intranet 和外部的商业 Extranet 应用中越来 越成熟。如何在 WWW 网页上开发企业应用程序并与企业数据库链接一直是 Intranet 应用开发 的重点和难点,动态 Web 技术和 ASP 技术就是在这种要求下产生的。 2.1.1 动态 Web 技术 动态 Web 技术的应用有多种类型。第一种类型是与使用者直接交互的页面,它的一个应 用是用传统的电子表格的方法为使用者统计几种数据表项的和。另一种类型是一个 Web 页面, 它对用户作出响应并给出迅速的反馈,这种形式常被应用于网络数据库的访问。通常,用一个 网络数据库存储用户可以访问的信息,由动态 Web 页提供对数据库的访问界面,用户通过 Web 浏览器就可以进行数据库的各种操作。 根据用户请求生成动态网页的传统方法有 CGI(Common Gateway Interface,即通用网关 接口)、ISAPI(Microsoft Internet Server Application Programming Interface,即微软 Internet 服 务器应用编程接口)等。CGI 的原理是根据浏览器端的 HTTP 请求激活响应进程,每一个请求 对应一个进程。当同时有很多请求时,程序将挤占系统资源,造成效率低下;ISAPI 针对这一 缺点进行了改进,利用 DLL(Dynamic Linked Library,即动态链接库)技术,以线程代替进 程,提高了性能和速度,但需考虑线程的同步问题。另外,无论是 CGI 程序还是 ISAPI 程序 都基本上是独立于 HTML 的,完全用另一种语言开发,工作量大,与 HTML 结合得不够紧密。 这两种技术和另一普遍使用的开发动态网页的技术 Java 还存在着一个问题,那就是开发困难, 程序的开发和 HTML 写作是两个完全不同的过程,需要专门的程序员开发。 2.1.2 什么是 ASP 为了满足开发动态网页的需要,微软公司于 1996 年 11 月推出了 Web 应用程序开发技术 ——ASP(Active Server Pages,即活动服务器页面) 。它实际上是对 IIS 2.0 的 IDC(Internet.

(2) 第2章. ASP 及其运行环境. 9. Database Connector,即 Internet 数据库连接器)技术的升级,不同的是它将 VBScript 脚本语言 嵌入了 HTML,完全具备开发复杂应用的语言环境。微软声称设计出了一个完美的 Active 平 台,在微软的文件中把 ASP 描述为:“一个服务器的脚本环境,在这里可以生成和运行动态的、 交互的、高性能的 Web 服务器应用程序” 。从描述中可以看出,ASP 既不是一种语言,也不是 一种开发工具,而是一种技术框架,它能够把 HTML、脚本、组件等有机地组合在一起,形 成一个能够在服务器上运行的应用程序,并把按用户要求专门制作的标准 HTML 页面回送给 客户端浏览器。ASP 的主要功能是为生成动态的交互式的 Web 服务器应用程序提供一种功能 强大的方法或技术。 ASP 是一个 Web 服务器端开发环境,属于 ActiveX 技术中的服务器端技术,与在客户端 实现动态网页的技术如 Java Applet、ActiveX Control、VBScript、JavaScript 等所不同的是, ASP 中的命令脚本语句都是在服务器中解释执行,执行后将结果转化成动态的 Web 页面,并 把标准的 HTML 格式的数据流送回到客户端浏览器。由于 ASP 是在服务器端解释执行,开发者 不必考虑客户端的浏览器是否支持 ASP,只要客户端浏览器能支持最新的 HTML 即可。另外, ASP 具有很好的安全性,它包括设定虚拟目录访问权限、用户身份检测、隐含脚本等措施。 同时,由于它在服务器端执行,所以不必担心别人是否能下载程序而窃取编程逻辑,访问者除 了浏览器上的 HTML 界面外,什么也看不见,保护了开发者的利益。 另外,ASP 还提供了丰富的组件和对象,可以使用第三方控件来完成复杂的功能。因此, ASP 具有开发简单、功能强大等优点,使用它可以非常直观地实现复杂的 Web 应用,产生和 运行动态的、交互的和高性能的 Web 服务应用程序。 ASP 通过扩展名为.asp 的文件来实现。一个 ASP 程序相当于一个可执行文件,必须放在 Web 服务器上有可执行权限的目录下。当浏览器向 Web 服务器请求调用 ASP 文件时,就启动 了 ASP,Web 服务器开始调用 ASP,将被请求的.asp 文件从头读到尾,执行每一个命令,然 后动态生成一个 HTML 页面并送回到浏览器。 通常,一个 ASP 有以下 4 个重要特征: (1)可以包括服务器端脚本。通过脚本的使用,可以使网站“动”起来,成为真正能同 用户交互的网站。 (2)提供了一些内建对象。利用对象,通过简单的编程就能获得功能强大的脚本。 (3)可以用另外的组件来扩展。在 ASP 中,本身就提供了相当数量的标准服务器端 ActiveX 组件,这些组件提供如依据浏览器进行不同显示以及在浏览器内包含计数器的功能, 可以轻松地使用这些组件来完成很复杂的工作。 另外还可以使用各种第三方控件来增强网页的 功能。 (4)ASP 可以对诸如 SQL Server 这样的数据库进行访问。利用一些特定的对象集合,如 Active Data Object(ADO),就可以在 ASP 中使用 SQL 语言来对数据库进行操作。 总而言之,ASP 是网页开发技术中最容易学习、灵活性最大的开发工具之一,更重要的 是 ASP 拥有非常大的可扩充性。归纳起来,ASP 具有以下特点:  可以和 HTML 或其他脚本语言(VBScript 与 JavaScript)相互嵌套。  无须编译,容易编写,在服务器端直接执行。  ASP 是一种在 Web 服务器端运行的脚本语言,程序代码完全保密。  ASP 以对象为基础,可以使用 ActiveX 控件继续扩充其功能。.

(3) Web 数据库技术. 10. ASP 内置 ADO 组件,可以轻松地存取各种数据库,缩短程序的开发时间。  ASP 可以将运行结果以 HTML 的格式传送到客户端浏览器,适用于各种浏览器。 由于 ASP 简单实用的特点而受到网站开发人员的喜爱,再加上微软的强有力支持,可以 说是制作站点比较流行的语言之一,特别是从 ASP 的推出到现在已十余年,网络上有丰富的 代码资源可供参考,而且许多漏洞已经得到解决。它借助微软的 COM+技术,几乎可以实现 在 CGI 能够实现的所有功能,具有相当的竞争力。但由于众所周知的原因,ASP 只能工作于 微软自己的操作系统平台和服务器软件之下,即只能在 Windows 和 IIS 系列中使用,因而决 定了 ASP 应用的局限性。若要运行于非微软的平台上,必须安装相应的商业软件,如 iASP (Instant ASP)的 ASP 脚本解释引擎软件,使 ASP 既可以在采用 Windows 操作系统平台和服 务器软件的网站上使用,也可以在采用其他操作系统如 UNIX、Linux、Solaris 等操作系统及 相应服务器的网站上使用。 . 2.2. ASP 的工作方式. 上一节已经简单叙述了 ASP 的工作方式,即利用 ASP 可以根据用户要求在 Web 服务器上 建立动态网页,与 IIS 所支持的静态网页有着明显的区别,其工作方式描述如下: (1)用户在浏览器的地址栏输入 ASP 文件名称,按 Enter 键后即触发这个 ASP 请求。 (2)浏览器将这个 ASP 的请求发送给 IIS。 (3)Web 服务器接受这个请求并进行分析,调入正确的 ASP 文件。 (4)Web 服务器将这个文件发送到一个名称为 asp.dll 的特定文件中。 (5)Web 服务器将被请求的.asp 文件从头读到尾,执行每一个命令,并生成相应的动态 网页。 (6)回送这个动态网页,由用户的浏览器解释执行并显示出来。. 2.3. Web 服务器的安装及配置. 虽然 Windows 2003 操作系统已经推出,考虑到服务器平台的稳定性,故本书仍以 Windows 2000 操作系统为例说明 Web 服务器的安装及配置,其他版本的使用大同小异。在安装过程中, 需要注意的是,采用默认方式安装 Windows 2000 时,系统已经安装了 Web 服务及其他服务(出 于系统安全性的考虑,在此作者建议尽量不要采用默认安装方式,并且只安装将要使用的那些 程序)。如果尚未安装,则可使用“控制面板”中的“添加/删除程序”来安装 IIS 里的 Web 服 务。同时,为了保证网站的安全,请及时访问微软的官方网站下载并安装有关补丁程序。 如果采用其他的 Web 服务器软件,如 Apache 软件,安装时请按照安装说明进行安装 和配置。 2.3.1 IIS 的配置 默认情况下,IIS 将它的根目录设置到 C:\Inetpub\wwwroot 下,在“开始”菜单中选择“程 序”→“管理工具”→“Internet 服务管理器”→“Internet 信息服务”,打开“Internet 信息服 务”界面,如图 2-1 所示。右击“myWeb(服务器名) ”下的“默认 Web 站点” ,选择“属性”.

(4) 第2章. ASP 及其运行环境. 11. 命令即可配置 IIS。. 图 2-1 Internet 信息服务. 在“Web 站点”选项卡中,“IP 地址”栏内输入或选择一个有效的 IP 地址作为此站点的 地址,如内部网可用 192.168.0.1 作为 Web 站点的 IP 地址,如图 2-2 所示。. 图 2-2. 设置站点 IP 地址. 在“主目录”选项卡的“本地路径”栏中填写:C:\Inetpub\wwwroot,或根据实际情况通 过单击“浏览”按钮选择自己的 Web 服务目录,如图 2-3 所示。.

(5) Web 数据库技术. 12. 图 2-3. 设置站点主目录. 在“文档”选项卡中,修改浏览器默认调用的文件名及调用顺序,如图 2-4 所示。. 图 2-4. 设置默认启动文档. 2.3.2 测试 ASP 用“记事本”或熟悉的文本编辑软件创建一个文件,并输入以下代码:.

(6) 第2章. ASP 及其运行环境. 13. <html> <head> <title>我的第一个 ASP 程序</title> </head> <body> <% response.write("hello world!") %> </body> </html>. 将此文件命名为 hello.asp,保存到站点主目录内。要访问此 ASP 文件,只需在浏览器的 地址栏中输入:http://localhost/hello.asp,如果一切正常,浏览器将显示如图 2-5 所示的程序运 行结果。. 图 2-5. 第一个 ASP 程序运行结果. 如果显示不正确,则需要检查 IIS 的配置及文件的访问权限等,常见的错误及解决办法见 表 2-1。 表 2-1 ASP 错误信息及解决办法 错误信息. 错误原因及解决方法. 无法与服务器建立连接. Web 服务器未启动或网络出现故障,检查 IIS 是否正常启动以及网络是否正常. 无法找到网页. 指定位置不存在所要访问的文件,检查输入的地址及文件名是否正确. 禁止访问. 未正确设置 ASP 所在目录的访问权限,改变该目录的权限为“读取及执行”. 2.3.3 Http 500 内部错误分析及解决办法 本节内容是针对 Http 500 内部错误问题的专题解答,供读者查阅。初学者也可跳过本节 继续进行第 3 章的学习,待遇到此问题时再进行查阅学习。 IIS 5 的 Http 500 内部服务器错误是经常碰到的错误之一,它的主要表现就是 ASP 程序不 能浏览,但 HTML 静态网页不受影响。另外当错误发生时,系统事件日志和安全事件日志都 会有相应的记录。 1.错误表现 (1)IE 浏览器中的表现。 当浏览以前能够正常运行的 ASP 页面时会出现如下的错误: 网页无法显示 您要访问的网页存在问题,因此无法显示。.

(7) Web 数据库技术. 14. 请尝试下列操作: 打开 http://127.0.0.1 主页,寻找指向所需信息的链接。 单击刷新按钮,或者以后重试。 HTTP 500 - 内部服务器错误 Internet 信息服务 技术信息(支持个人) 详细信息: Microsoft 支持. 或者是: Server Application Error The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.. (2)安全日志记录(2 条)。 事件类型:失败审核 事件来源:Security 事件种类:登录/注销 事件 ID:529 日期:yyyy-mm-dd 事件:hh:mm:ss 用户:NT AUTHORITY\SYSTEM 计算机:MYSERVER 描述: 登录失败: 原因:用户名未知或密码错误 用户名:IWAM_MYSERVER 域:MYDOM 登录类型:4 登录过程:Advapi 身份验证程序包:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 工作站名:MYSERVER 事件类型:失败审核 事件来源:Security 事件种类:账户登录 事件 ID:681 日期:yyyy-mm-dd 事件:hh:mm:ss 用户:NT AUTHORITY\SYSTEM 计算机:MYSERVER 描述: 登录到账户:IWAM_MYSERVER 登录的用户:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 从工作站:MYSERVER 未成功。错误代码是:3221225578. (3)系统日志中的记录(2 条)。 事件类型:错误.

(8) 第2章. ASP 及其运行环境. 15. 事件来源:DCOM 事件种类:无 事件 ID:10004 日期:yyyy-mm-dd 事件:hh:mm:ss 用户:N/A 计算机:MYSERVER 描述: DCOM 遇到错误“无法更新密码。提供给新密码的值包含密码中不允许的值。”并且无法登录到 \IWAM_MYSERVER 上以运行服务器:{3D14228D-FBE1-11D0-995D-00C04FD919C1} 事件类型:警告 事件来源:W3SVC 事件种类:无 事件 ID:36 日期:yyyy-mm-dd 事件:hh:mm:ss 用户:N/A 计算机:MYSERVER 描述: 服务器未能转入应用程序 '/LM/W3SVC/4/Root'。错误是 'RunAs 的格式必须是<域名>\<用 户名>或只是<用户名>'。 若要获取关于此消息的更多的信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp. 2.原因分析 综 合 分 析 上 面 的 错 误 表 现 可 以 看 出 , 主 要 是 由于 IWAM 账 号 ( 在 计 算 机 中 就 是 IWAM_MYSERVER 账号)的密码错误造成了 Http 500 内部错误。 IWAM 账号是安装 IIS 时系统自动建立的一个内置账号,主要用于启动进程之外的应用程 序的 Internet 信息服务。IWAM 账号的名字会根据每台计算机 NETBIOS 名字的不同而有所不 同,通用的格式是 IWAM_MACHINE,即由“IWAM”前缀、连接线“_”加上计算机的 NETBIOS 名字组成。若计算机的 NETBIOS 名字是“MYSERVER”,则计算机上 IWAM 账号的名字就是 “IWAM_MYSERVER”,这一点与 IIS 匿名账号 ISUR_MACHINE 的命名方式非常相似。 IWAM 账号建立后被 Active Directory、IIS metabase 数据库和 COM+应用程序三方共同使 用,账号密码被三方分别保存,并由操作系统负责这三方保存的 IWAM 密码的同步工作。但 系统对 IWAM 账号的密码同步工作有时会失败,使三方 IWAM 账号所用密码不统一。当 IIS 或 COM+ 应用 程 序使 用 错误 IWAM 的 密 码登 录系 统 , 启动 IIS Out-Of-Process Pooled Applications 时,系统会因密码错误而拒绝这一请求,导致 IIS Out-Of-Process Pooled Applications 启 动 失 败 , 也 就 是 在 ID10004 错 误 事 件 中 看 到 的 “ 不 能 运 行 服 务 器 {3D14228D-FBE1-11D0-995D-00C04FD919C1} ”,即不能转入 IIS 应用程序,Http 500 内部错 误就这样产生了。这里 {3D14228D-FBE1-11D0-995D-00C04FD919C1} 是指 IIS Out-Of-Process Pooled Applications 的 KEY。 3.解决办法 知道了导致 Http 500 内部错误的原因,解决起来就比较简单了,那就是人工同步 IWAM.

(9) 16. Web 数据库技术. 账号在 Active Directory、IIS metabase 数据库和 COM+应用程序中的密码。具体操作分 3 步, 均需要以管理员身份登录计算机以提供足够的操作权限(IWAM 账号以 IWAM_MYSERVER 为例)。 (1)更改 Active Directory 中 IWAM_MYSERVER 账号的密码。 因 IWAM 账号的密码由系统控制随机产生,所以未知,若要完成下面两步的密码同步工 作,必须将 IWAM 账号的密码设置为已知值。 选择“开始”→“程序”→“管理工具”→“Active Directory 用户和计算机”,启动“Active Directory 用户和计算机”管理单元。 单击 user,选中右面的 IWAM_MYSERVER,右击选择“重设密码(T)...”,在跳出的重设 密码对方框中给 IWAM_MYSERVER 设置新的密码,这里设置成 newpassword。 (2)同步 IIS metabase 中 IWAM_MYSERVER 账号的密码。 微软并没有为修改 IIS metabase 中 IWAM_MYSERVER 账号的密码提供一个显式的用户接 口,只随 IIS 5 提供了一个管理脚本 adsutil.vbs,这个脚本位于 C:\Inetpub\adminscripts 子目录 下(即安装 IIS 5 时的默认目录位置) 。 adsutil.vbs 脚本功能强大,参数非常多且用法复杂,这里只提供使用这个脚本修改 IWAM_MYSERVER 账号密码的方法: adsutil SET w3svc/WAMUserPass Password Password 参 数 是 要 设 置 的 IWAM 账 号 的 新 的 密 码 。 因 此 将 IIS metabase 中 IWAM_MYSERVER 账号的密码修改为 newpassword 的命令为: c:\Inetpub\adminscripts>adsutil SET w3svc/WAMUserPass " newpassword " 修改成功后,系统会有如下提示: WAMUserPass: (String) " newpassword " (3)同步 COM+应用程序所用的 IWAM_MYSERVER 的密码。 同步 COM+应用程序所用的 IWAM_MYSERVER 的密码,有两种方式可以选择:一种是 使用组件服务 MMC 管理单元,另一种是使用 IWAM 账号同步脚本 synciwam.vbs。 1)使用组件服务 MMC 管理单元。 启动组件服务管理单元:选择“开始”→“运行”→MMC,启动管理控制台,打开“添 加/删除管理单元”对话框,将“组件服务”管理单元添加上。 找到“组件服务”→“计算机”→“我的电脑”→“COM+应用程序”→Out-Of-Process Pooled Applications,右击 Out-Of-Process Pooled Applications,选择“属性”命令。 切换到 Out-Of-Process Pooled Applications 属性对话框的“标志”选项卡。“此应用程序在 下列账户下运行”选择中“此用户”会被选中,用户名是 IWAM_MYSERVER。这些都是缺省 的,不必改动。在下面的“密码”和“确认密码”文本框内输入正确的密码 newpassword,然 后确定退出。 系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?” 时确定即可。 如果在 IIS 中将其他一些 Web 的“应用程序保护”设置为“高(独立的)” ,那么这个 Web 所使用的 COM+应用程序的 IWAM 账号密码也需要同步。重复执行上述步骤,同步其他相应 Out of process application 的 IWAM 账号密码。.

(10) 第2章. ASP 及其运行环境. 17. 2)使用 IWAM 账号同步脚本 synciwam.vbs。 由于 IWAM 账号在密码同步方面存在问题,因此在 IIS 5 的管理脚本中单独为 IWAM 账 号密码同步编写了一个脚本 synciwam.vbs,这个脚本位于 C:\Inetpub\adminscripts 子目录下(安 装 IIS 5 的目录位置)。synciwam.vbs 脚本用法比较简单: cscript synciwam.vbs [-v|-h]. -v 参数表示详细显示脚本执行的整个过程(建议使用)。 -h 参数用于显示简单的帮助信息。 要 同 步 IWAM_MYSERVER 账 号 在 COM+ 应用 程序 中的密 码, 只需要 执 行 cscript synciwam.vbs -v 即可,如下: cscript c:\inetpub\adminscripts\synciwam.vbs –v Microsoft (R) Windows Script Host Version 5.6 版权所有(C) Microsoft Corporation 1996-2000。保留所有权利。 WamUserName:IWAM_MYSERVER WamUserPass: newpassword IIS Applications Defined: Name, AppIsolated, Package ID w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1} Root, 2, IISHelp, 2, IISAdmin, 2, IISSamples, 2, MSADC, 2, ROOT, 2, IISAdmin, 2, IISHelp, 2, Root, 2, Root, 2, Out of process applications defined: Count: 1 {3D14228D-FBE1-11d0-995D-00C04FD919C1} Updating Applications: Name: IIS Out-Of-Process Pooled Applications Key: {3D14228D-FBE1-11D0-995D-00C04FD919C1}. 从上面脚本的执行情况可以看出,使用 synciwam.vbs 脚本要比使用组件服务的方法更全 面和快捷。它首先从 IIS 的 metabase 数据库找到 IWAM 账号 IWAM_MYSERVER 并取出对应 的密码 newpassword,然后查找所有已定义的 IIS Applications 和 Out of process applications,并 逐一同步每一个 Out of process applications 应用程序的 IWAM 账号密码。使用 synciwam.vbs 脚本时,要注意一个问题,那就是在运行 synciwam.vbs 之前,必须保证 IIS metabase 数据库与 Active Directory 中的 IWAM 密码已经一致。因为 synciwam.vbs 脚本是从 IIS metabase 数据库 而不是从 Active Directory 取得 IWAM 账号的密码,如果 IIS metabase 中的密码不正确,那 synciwam.vbs 取得的密码也会不正确,同步操作执行到 Updating Applications 时系统就会报 80110414 错误,即“找不到应用程序{3D14228D-FBE1-11D0-995D-00C04FD919C1}”。 经过以上步骤,IWAM 账号在 Active Directory、IIS metabase 数据库和 COM+应用程序三.

(11) Web 数据库技术. 18. 处的密码已经完成同步,即可再次尝试运行 ASP 程序。. 本章小结 本章简要地介绍了 ASP 的产生、基本概念及 ASP 的应用,详细地讲解了 Web 服务器的配 置。正确配置 IIS 是以后运行 ASP 程序的前提条件。下一章将介绍 ASP 源程序主体语言之一 ——HTML,为以后编写出高质量的 ASP 应用程序打下良好的基础。. 思考题二 2-1 什么是 ASP? 2-2 ASP 的工作方式是怎样的? 2-3 简述 IIS 的配置要点。 2-4 编写一个 ASP 程序,在屏幕上显示“Hello World!”。. 参考答案 略。.

(12)

參考文獻

相關文件

超定方程组QR分解算法 数据拟合确定常微分方程..

一、 重积分计算的基本方法 二、重积分计算的基本技巧 三、重积分的应用.. 重积分的

前一學期學業成績總平均 70 分以上者,操行成績甲等(80 分以上) 。成績單未登記 有操性成績者,須檢附【表二】獎學金推薦函乙份。2. 前一學期學業成績總平均

方法一: 採用 【Compare Means】分析選項 One- One -way ANOVA way ANOVA分析報表說明 分析報表說明

〝电子签署〞(electronic signature)

• 在線 (online):程式/演算法 必須對前一個詢問或操作做出

• 在線 (online):程式/演算法 必須對前一個詢問或操作做出

可以彼此互通交換,賦予資源再利用(Reuse)及互操作性(Interoperability)的特性,節省在