ASP教程_

时间:2022-12-27 04:57 阅读: 评论: 作者:admin

ASP教程_

  Active Server Pages(ASP)文件是以 .asp 为扩展名的文本文件,这个文本文件可以包括下 列部分的任意组合: 文本 HTML 标记 ASP 脚本命令 创建 .asp 文件非常容易。如果要在 HTML 文件中添加脚本,只需将该文件的扩展名 .htm 或 .html 替换为 .asp 就可以了。要使 .asp 文件可用于 Web 用户,请将这个新文件保存 在 Web 站点上的目录中(请确定启用了该目录的脚本和执行权限) 。使用浏览器查看该文 件时,可以看到 ASP 处理并返回了 HTML 页。现在可以在 .asp 文件中添加脚本命令了。 注意 因为 .asp 文件需要额外的处理,请不要将所有的 HTML 页都转换为 ASP 页。应该 只将包含脚本命令的文件转换为 .asp 文件。.asp 和 .htm 文件可以放置在相同的目录中。 使用任何的文本编辑器都可以创建 .asp 文件。使用那些带有 ASP 增强支持的编辑器将更 能提高效率,如 Microsoft? Visual InterDev? 。如果您从未使用过 HTML,请考虑先使用 Microsoft FrontPage 。 使用 FrontPage 创建文档和格式化文本就象使用文字处理工具一样简 单。接下来还可以使用 Insert Script 命令在 FrontPage 创建的 HTML 页中加入简单的 ASP 命令。 加入 Script 命令 脚本是一系列的命令和指令。与 HTML 标签不同,script 命令指示 Web 服务器执行操作, 而 HTML 标签只是简单地格式化文本或读取图形、视频及音频文件。Script 命令可以在变 量中存储用户名,在返回到浏览器的页中显示用户名或将用户名存储在数据库中。 脚本命令通过定界符与文本区别开来。定界符是字符或一串字符,它标志单元开始或结束。 HTML 使用定界符棗小于号()和大于号()括入 HTML 标签。 ASP 使用定界符 % 和 % 括入脚本命令。您可以在定界符中括入任何命令,只要这些 命令对正在使用的脚本语言有效。下面的例子展示了包含脚本命令的简单的 HTML 页: HTML BODY This page was last refreshed on %= Now %. /BODY /HTML VBScript 函数 Now 返回当前的日期和时间。Web 服务器处理该页时,会使用当前的日期 和时间替换 %= Now % 并且将该页返回到浏览器: This page was last refreshed on 8/1/97 2:20:00 PM. 定界符括入的命令被称为主脚本命令。 这些命令被主脚本语言处理。 在脚本定界符中使用的 任何命令都必须对主脚本语言有效。默认情况下,主脚本语言是 VBScript。要设置另一种 语言。请参阅 使用脚本语言。 如果您已经熟悉了客户端脚本编写(编写在浏览器上运行的脚本) ,请注意不要用 HTML SCRIPT 元素括入表达式。在编写服务器端脚本时,只用 SCRIPT 元素在主脚本语言 外的其他语言中定义过程。关于详细信息,请参阅 使用脚本语言。 合成 HTML 和脚本命令 在 ASP 定界符中可以包含任何在主脚本语言中合法的语句、表达式、过程或操作符。在 VBScript 和其他脚本语言中,语句是语法完整的单元,该单元表达某项活动、声明或定义。

  脚本之前,缓冲区不显示任何响应给用户。对于较长的和较复杂的脚本,用户可能要被迫等 待很长一段时间才能看到这一页。 默认情况下,缓冲区对于 ASP 应用程序是关闭的。可以使用 Internet 服务管理器为整个 ASP 应用程序打开缓冲区。详细信息,请参阅 配置 ASP 应用程序。 允许代理服务器缓存页 通过代理服务器,应用程序可以发送页给用户。代理服务器 代替用户浏览器从 Web 站点 请求网页。代理服务器缓存 HTML 页以便相同页的重复请求能够快速有效地返回给浏览 器。代理服务器执行请求并缓存网页,并减轻网络和 Web 服务器的负荷。 尽管缓存对 HTML 页都能很好运行, 但对包含动态生成信息的 ASP 页则不尽人意。 例如, 报告股市行情或显示大量业务的存货清单需要提供即时信息。 一小时前的信息对目前来讲是 很不准确的。如果应用程序返回个人的信息,例如,自定义的主页,希望用户不能看到另一 个用户的个人信息。 默认情况下,ASP 命令代理服务器自己不能缓存 ASP 页(尽管缓存图像、位图、小型应 用程序,和其他缓存页上的参考项) 。可以使用 Response.CacheControl 属性设置缓存控制 HTTP 标题字段允许缓存某一页。Response.CacheControl 的默认值是字符串 Private,它 避免代理服务器缓存此页。要允许缓存,可将缓存控制标题字段设置为 Public: % Response.CacheControl = Public % 因为在任何页的内容被发送之前,HTTP 标题必须被送给浏览器或代理服务器,所以,可在 任何 HTML 标记之前设置 Response.CacheControl 属性或使用 Response.Buffer 缓存此 页。 缓存控制标题字段是 HTTP 1.1 规格的一部分。 在只支持 HTTP 1.0 的代理服务器上不能缓 存 ASP 页,因为没有到期的标题字段发送。 避免浏览器缓存页 每一个浏览器版本都有它自己的规格来规定是否缓存页。要避免浏览器缓存 ASP 页,可使 用 Response.Expires 设置到期标题: % Response.Expires = 0 % 值为 0 强迫缓存页到期。因为在任何页被发送之前,HTTP 标题必须被送给浏览器,所以 可通过将 Response.Expires 属性放在 HTML 标记之前或使用 Response.Buffer 缓存该页。 创建动态通道 Internet Explorer 4.0 有一个新的特性,Web 规划人员可以使用该属性将带有公用主题的 Web 页并入一个通道。在浏览器中,通道被显示在通道标题栏上;用户通过单击图标访问 通道。通道在后台自动更新;用户不必访问站点就可以在自己的浏览器上下载最新的页。通 道为用户提供了一条浏览一组相关的 Web 页的快速而直接的通路,并且这些 Web 页是自 动更新的。 使用 ASP,可以编写脚本来收集用户的首选项,然后动态地创建通道。通道定义文件 (.cdf) 建立了通道内容的组织和顺序。在 .cdf 文件中的命令使用与 HTML 标记相同的语法,以 便于掌握和从脚本中生成。 在编写 ASP 脚本来创建通道定义文件时, 脚本用 .cdx 扩展名。 当 ASP 读取一个以 .cdx 为扩展名的文件时,将自动发送 application/x-cdf 内容类型,它 告 诉 浏 览 器 用 通 道 定 义 来 解 释 字 节 。 如 果 不 使 用 .cdx 作 扩 展 名 , 则 脚 本 必 须 用 Response.ContentType 手工将内容类型设置为 application/x-cdf。 下面是一个有关如何使用通道的示例。下面的 HTML 表格要求用户选择通道。提交时,该 表格调用 .cdx 文件的脚本去创建通道的定义。 P Choose the channels you want. /P FORM METHOD=POST ACTION=chan.cdx

  SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法。 ASP 只使用这一机制的 #include 指令。要在 .asp 文件中插入一个文件,使用下面的语法:

  Active Server Pages 在功能方面有所增强,更易于开发应用程序。 Microsoft 脚本调试程序。 您可以使用脚本调试程序调试 .asp 文件。请参阅 调试 ASP 脚 本。 事务性脚本。 ASP 页和页中使用的对象可以运行于事务环境之下。在页上的全部工作只有 两种结果:提交或终止。事务可以保护应用程序免于因失败而导致数据丢失。请参阅 创建 事务性脚本。 管理工具。 许多应用程序设置可在 Internet 服务管理器上进行,这是 Internet Information Server 和 Personal Web Server(在 Windows NT Workstation 上)的管理工具。请参阅 配置 ASP 应用程序。 隔离 ASP 应用程序。 您可以隔离 ASP 应用程序以便它们能在 Web 服务器上独立的内存 空间内运行。万一某个应用程序失败时,可以保护其他应用程序和 Web 服务器。它也使您 可以在不停止 Web 服务器的情况下, 停止一个应用程序或从内存中卸载其组件。 请参阅 隔 离应用程序. 文件上载。 浏览器可以通过 Posting Acceptor 应用程序将文件上载到 Web 服务器。可以 编写 ASP 脚本来发送带有从 Posting Acceptor 传来的信息的 email,如每一个上载文件的 位置和名称。请参阅 Posting Accepter 文档(在 Microsoft Site Server Express 的目录表中) 。 新的 ASP 组件。 ASP 提供了新的基础组件。有关概述请参阅 ActiveX 组件。 应用程序根目录的改变。 ASP 应用程序的根目录在您的 Web 站点上可以是物理目录。以 前,根目录必须映射为虚拟目录。现在可以用 Internet 服务管理器指示 ASP 应用程序的根 目录。请参阅 创建应用程序。必须将 .asp 文件置于应用程序树中,Web 服务器才能检测 文件的改变并且自动重装它们。 支持 Internet Explorer 4.0 通道和 Web 预测。 当 ASP 要发送包含通道定义命令的文件时, 它会自动告诉 Internet Explorer 4.0。使用 ASP 很容易就能生成通道定义 (.cdf) 文件。 支持 HTTP 1.1 协议。 Internet Information Server 和 Personal Web Server 支持 HTTP 1.1 协议。在响应支持 HTTP 1.1 的浏览器(例如 Internet Explorer 4.0)时,这一支持可使 ASP 利用新协议的高效率。例如,当向浏览器返回页的时候,ASP 使用大块转换编码以提高网 络效率。

  执行错误也可能因不太明显的根源所致。详细信息, 请参阅 Microsoft 脚本调试程序文档的 “调试技巧”部分。 -------------------------------------------------------------------------------管理会话 成功开发 Web 应用程序的难题之一是在一次用户访问,即会话期间,当用户在一个应用程 序的页与页之间跳转的同时,维护用户信息。HTTP 是一种无状态协议,也就是说,Web 服 务器将某页的每次访问都当作相互无关的访问来处理;服务器不保留前一次访问的任何信 息, 即使访问就发生在当前访问的几秒钟之前。 正因为这种不记忆以前访问的特性使得编写 联机目录之类的应用程序很困难, 此类应用程序可能需要跟踪用户在目录的不同页间跳转的 同时曾选择过的目录项。 ASP 提供了一个管理会话信息问题的独特方案。使用 ASP Session 对象和由您的服务器生 成的特殊用户 ID,您可以创建一个智能应用程序,该应用程序可以识别每个来访的用户并 收集应用程序跟踪用户的首选项或选择内容所要用到的信息。 ASP 通过 HTTP cookie 设置用户 ID。HTTP cookie 是存储在用户浏览器上的小文件。因 此,如果您正在为不支持 cookie 的浏览器创建应用程序,或者您的客户将浏览器设置为不 接受 cookie,请不要使用 ASP 的会话管理功能。 您也可以编写在应用程序启动或结束时运行的脚本。 有关定义应用程序启动事件或应用程序 结束事件的信息,请参阅 Global.asa 参考。 启动和结束会话 会话可以通过三种方式启动: 一个新用户请求访问一个 URL, URL 标识了某个应用程序中的 .asp 文件, 该 并且该应用 程序的 Global.asa 文件包含 Session_OnStart 过程。 用户在 Session 对象中存储了一个值。 用 户 请 求 了 一 个 应 用 程 序 的 .asp 文 件 , 并 且 该 应 用 程 序 的 Global.asa 文 件 使 用 OBJECT 标签创建带有会话作用域的对象的实例。有关使用 OBJECT 标签创建带有 会话作用域的对象的实例的详细信息,请参阅 使用组件。 如果用户在指定时间内没有请求或刷新应用程序中的任何页, 会话将自动结束。 这段时间的 默认值是 20 分钟。可以通过在 Internet 服务管理器中设置“应用程序选项”属性页中的 “会话超时”属性改变应用程序的默认超时限制设置。应依据您的 Web 应用程序的要求和 服务器的内存空间来设置此值。例如,如果您希望浏览您的 Web 应用程序的用户在每一页 仅停留几分钟, 就应该缩短会话的默认超时值。 过长的会话超时值将导致打开的会话过多而 耗尽您的服务器的内存资源。 对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置 Session 对 象的 Timeout 属性。例如,下面这段脚本将超时值设置为 5 分钟。 % Session.Timeout = 5 % 您也可以设置一个大于默认设置的超时值,Session.Timeout 属性决定超时值。 您也可以通过 Session 对象的 Abandon 方法显式结束一个会话。例如,在表格中提供一个 “退出”按钮,将按钮的 ACTION 参数设置为包含下列命令的 .asp 文件的 URL 。 % Session.Abandon % 关于 SessionID 和 Cookie 当用户第一次请求给定的应用程序中的 .asp 文件时, ASP 生成一个 SessionID。 SessionID 是由一个复杂算法生成的号码,它唯一标识每个用户会话。在新会话开始时,服务器将 Session ID 作为一个 cookie 存储在用户的 Web 浏览器中。 SessionID 与钥匙很相似,当会话期间用户与应用程序交互时,ASP 可以将用户信息存储在

  Status 组件跟踪 Web 站点的信息,如访问者的数量以及 HTTP 连接的个数。 System 组件创建包含服务器状态信息的 status 对象。当前该服务器状态只在 Personal Web Server for Macintosh 上可用。 Tools 组件提供了生成随机数、检查文件是否存在或处理 HTML 表格的方法。 Page Counter Page Counter 组件 统计并显示 Web 页被请求的次数。以一定的时间间隔,将捕获的数字 写入到文本文件中,这样服务器关闭后,数据也不会丢失。 Permission Checker Permission Checker 组件测试 Web 用户对某文件或某页的访问权。可以使用 Permission Checker 组件为不同类型的用户定制基于 ASP 的页。例如, 如果 Web 页包含超文本链接, 就可以使用 Permission Checker 组件测试用户对相应 Web 页的访问权限并忽略用户无权 访问的页或使这些链接失效。

  千万不要轻视正确配置安全设置的重要性。如果不正确配置安全设置,不但会使您的 ASP 应用程序遭受不必要的篡改,而且会妨碍正当用户访问您的 .asp 文件。 Web 服务器提供了各种方法来保护您的 ASP 应用程序免受未授权的访问和篡改。在您读 完本主题下的安全信息之后,请花一定的时间仔细检查一下您的 Windows NT 和 Web 服 务器安全性文档。详细信息,请参阅 安全性。 NTFS 权限 您可以通过为单独的文件和目录应用 NTFS 访问权限来保护 ASP 应用程序文件。NTFS

  INPUT TYPE=text NAME=country VALUE = INPUT TYPE=hidden NAME=userid VALUE= %=UserIDNum(i) % INPUT TYPE=submit VALUE=Enter 本方法要求传输用户信息的所有链接目标被编码为 HTML 表格。 如果您当前没有使用 ASP 会话管理,请关闭您的应用程序会话支持。当会话启用时,ASP 向每个请求 ASP 页的浏览器发送 SessionID cookie。要关闭会话支持,可清除 Internet 服 务管理器中的“应用程序选项”属性页中的“启用会话状态”复选框。 无会话的 ASP 页 ASP 也提供创建无会话页的功能,您可以使用该功能将会话的创建时间推迟到用户访问一 个需要会话跟踪的 ASP 页时。 无会话页不执行以下功能: 执行 Session_OnStart 过程。 发送会话 ID cookie。 创建 Session 对象。 访问用 OBJECT 标记创建的内建会话对象或会话作用域对象。 与其他会话请求顺序执行。 要将 .asp 配置为无会话,可使用下列语句: %@ EnableSessionState=False % 您应将此脚本置于 .asp 文件的第一行,位于其他脚本之前。默认情况下,若省略此标记, 则启用会话跟踪。 无会话 ASP 页通过消除潜在的耗时会话操作,改善服务器的响应性能。例如,考虑以下情 况,ASP 页包含某个帧集中的两个 HTML 帧,帧 1 和 帧 2。帧 1 包含一个执行复杂脚 本的 .asp 文件,而帧 2 包含一个简单的 .html 文件。因为 ASP 顺序执行(即串行执行) 会线 的脚本被执行之前,您将不会看到帧 2 的内容。但是,如果您将帧 1 设置为无会话,则 ASP 请求将不再被串行处理,浏览器不必等待执行完帧 1 的内容就 可以处理帧 2 的内容。 但是,不同帧的多个请求的处理方式最终还要取决于用户 Web 浏览器的配置。某些 Web 浏览器可能不理会您的 .asp 文件的无会话配置,照样串行处理请求。

  截获了用户 sessionID cookie 的计算机黑客可以使用此 cookie 假冒该用户。如果 ASP 应 用程序包含私人信息,信用卡或银行帐户号码,拥有窃取的 cookie 的计算机黑客就可以在 应用程序中开始一个活动会话并获取这些信息。 您可以通过对您的 Web 服务器和用户的浏 览器间的通讯链路加密来防止 SessionID cookie 被截获。有关加密的详细信息,请参阅 安 全性。 使用身份验证机制保护被限制的 ASP 内容 您可以要求每个试图访问被限制的 ASP 内容的用户必须要有有效的 Windows NT 帐号的 用户名和密码。每当用户试图访问被限制的内容时,Web 服务器将进行身份验证,即确认 用户身份,以检查用户是否拥有有效的 Windows NT 帐号。 Web 服务器支持以下几种身份验证方式: 基本身份验证 提示用户输入用户名和密码。 Windows NT 请求/响应式身份验证 从用户的 Web 浏览器通过加密方式获取用户身份信 息。 然而,Web 服务器仅当禁止匿名访问或 Windows NT 文件系统的权限限制匿名访问时才验 证用户身份。详细信息,请参阅 关于身份验证。 保护元数据库 访问元数据库的 ASP 脚本需要 Web 服务器所运行的计算机的管理员权限。在从远程计算 机上运行这些脚本时,须经已通过身份验证的连接,如使用 Windows NT 请求/响应验证方 式进行连接。应该为管理级 .asp 文件创建一个服务器或目录并将其目录安全验证方式设置 为 Windows NT 请求/响应式身份验证。目前,仅 Microsoft Internet Explorer version 2.0 或 更高版本支持 Windows NT 请求/响应式身份验证。 使用 SSL 维护应用程序的安全 Secure Sockets Layer (SSL) 3.0 协议作为 Web 服务器安全特性,提供了一种安全的虚拟透 明方式来建立与用户的加密通讯连接。 SSL 保证了 Web 内容的验证, 并能可靠地确认访问 被限制的 Web 站点的用户的身份。 通过 SSL, 您可以要求试图访问被限制的 ASP 应用程序的用户与您的服务器建立一个加密 连接;以防用户与应用程序间交换的重要信息被截取。详细信息,请参阅 加密。 维护包含文件的安全 如果您从位于没有保护的虚拟根目录中的 .asp 文件中包含了位于启用了 SSL 的目录中的 文件,则 SSL 将不被应用于被包含文件。因此,为了保证应用 SSL,应确保包含及被包含 的文件都位于启用了 SSL 的目录中。 客户资格认证 控制对您的 ASP 应用程序访问的一种十分安全的方法是要求用户使用 客户资格 登录。 客 户资格是包含用户身份信息的数字身份证, 它的作用与传统的诸如护照或驾驶执照等身份证 明相同。 用户通常从委托的第三方组织获得客户资格, 第三方组织在发放资格证之前确认用 户的身份信息。 (通常,这类组织要求姓名、地址、电话号码及所在组织名称;此类信息的 详细程度随给予的身份等级而异。 ) 每当用户试图登录到需要资格验证的应用程序时, 用户的 Web 浏览器会自动向服务器发送 用户资格。如果 Web 服务器的 Secure Sockets Layer (SSL) 资格映射特性配置正确,那么 服务器就可以在许可用户对 ASP 应用程序访问之前对其身份进行确认。 用于处理资格证明的 ASP 脚本 作为 ASP 应用程序开发人员, 您可以编写脚本来检查资格是否存在并读取资格字段。 例如, 您可以从资格证明中访问用户名字段和公司名字段。 Active Server Pages 在 Request 对象的 ClientCertificate 集合中保存资格信息。详细信息,请参阅 ASP 内建对象。

  Web 应用程序的复杂性问题。 Active Server Pages 模型 浏览器从 Web 服务器上请求 .asp 文件时,ASP 脚本开始运行。然后 Web 服务器调用 ASP,ASP 全面读取请求的文件,执行所有脚本命令,并将 Web 页传送给浏览器。 由于脚本在服务器上而不是在客户端运行,传送到浏览器上的 Web 页是在 Web 服务器上 生成的。所以不必担心浏览器能否处理脚本:Web 服务器已经完成了所有脚本的处理,并 将标准的 HTML 传输到浏览器。由于只有脚本的结果返回到浏览器,所以服务器端脚本不 易复制。用户看不到创建他们正在浏览的页的脚本命令。

  Microsoft? Active Server Pages(ASP)是服务器端脚本编写 环境,使用它可以创建和运行动 态、 交互的 Web 服务器应用程序。 使用 ASP 可以组合 HTML 页、 脚本命令和 ActiveX 组 件以创建交互的 Web 页和基于 Web 的功能强大的应用程序。 ASP 应用程序很容易开发和 修改。 HTML 编写人员 如果您是位 HTML 编写人员,您将发现 ASP 脚本提供了创建交互页的简便方法。如果您 曾想从 HTML 表格中收集数据,或用顾客的姓名个人化 HTML 文件,或根据浏览器的不 同使用不同的特性,您会发现 ASP 提供了一个出色的解决方案。以前,要想从 HTML 表 格中收集数据,就不得不学习一门编程语言来创建一个 CGI 应用程序。现在,您只要将一 些简单的指令嵌入到您的 HTML 文件中,就可以从表格中收集数据并进行分析。您再不必 学习完整的编程语言或者单独编译程序来创建交互页。 随着不断掌握使用 ASP 和脚本语言的技巧,您可以创建更复杂的脚本。对于 ASP,您可 以便捷地使用 ActiveX 组件来执行复杂的任务,比如连接数据库以存储和检索信息。 对 ASP 脚本的逐步介绍,请参阅 ASP 教程。然后您可以再回到这些主题中了解关于编写 ASP 脚本的详细信息。 有经验的脚本编写人员 如果您已经掌握一门脚本语言,如 VBScript、JavaScript 或 PERL,而且您已经了解使用 ASP 的方法。只要安装了符合 ActiveX 脚本标准的相应脚本引擎,就可以在 ASP 页中使 用任何一种脚本语言。ASP 带有 Microsoft? Visual Basic? Scripting Edition (VBScript)和 Microsoft? JScript? 的脚本引擎, 这样您可以立即开始编辑脚本。 PERL、 REXX 和 Python 的 ActiveX 脚本引擎可以从第三方开发人员处获得。 Web 开发人员 如果您已经掌握了一门编程语言,如 Visual Basic,您将发现 ASP 是快速创建 Web 应用 程序的一个非常灵活的方法。通过向 HTML 中添加脚本命令,您能够创建应用程序的 HTML 接口。通过创建自己的 ActiveX 组件,可以将应用程序中的商业逻辑封装到能够从 脚本、其他组件或从其他程序中调用的模块。 使用 ASP 进行计算的 Web 可转化为有形的利益,它使 Web 供应商能够提供交互的商业 应用而不仅仅是发布内容。例如,旅行社能够比公布航空时刻表做得更多;用 ASP 脚本可 以让客户察看现有的航班、比较费用并预定座位。 包含在 Windows NT Option pack 中的 Microsoft Transaction Server(MTS)可以降低在服务 器上构造程序的复杂性和费用。MTS 可以解决开发那些保密性强的、可分级的以及可靠的

  在 ASP 页上,您也可以使用 Server.CreateObject 方法将对象存储在 Session 内建对象中。 以下示例在 Session 对象中存储 Ad Rotator 对象的一个实例。 % Set Session(MyAd) = Server.CreateObject(MSWC.Adrotator) % 要显示广告,您首先应该获取存储在 Session 对象中的 Ad Rotator 对象的实例,然后才能 调用方法来显示对象: % Set MyAd = Session(MyAd) % %= MyAd.GetAdvertisement(addata.txt) % 在用 OBJECT 标记声明的对象被某个 .asp 文件中的脚本命令引用之前,ASP 并不创建 其实例。Server.CreateObject 方法则立即创建该对象实例。因此,对会话作用域对象来说, 使用 OBJECT 标记要比 Server.CreateObject 属性更好。 为对象赋予应用程序作用域 application-scope 对象是在应用程序启动时就创建的对象的单个实例。该对象由所有客户端 请求共享。仅在极少数情况下,您才需要为对象赋予应用程序作用域。一些实用程序对象, 例如计数器等, 可能需要应用程序作用域。 但一般来说, 您可用在下一节中建议的替代方案。 另外,线程模型会影响性能和对象安全环境(请参阅本主题的“高级信息:性能问题”。 ) 要为对象赋予应用程序作用域并将其存储在 ASP Application 内建对象中,既可以使用 Global.asa 文件中的 OBJECT 标记,也可以使用 ASP 页上的 Server.CreateObject 方法 创建应用程序作用域的对象实例。 在 Global.asa 文件中,您可用扩展了 RUNAT 属性(必须设置为 Sever)和 SCOPE 属性 (必须设置为 Session) ;OBJECT 标记。 ASP 页中, 的 在 您可以使用 Server.CreateObject 将 对 象 实 例 存 储 在 Application 内 建 对 象 中 。 关 于 使 用 OBJECT 标 记 和 Server.CreateObject 的示例,请参阅上一节“为对象赋予会话作用域” 。 会话和应用程序作用域的替代方案 仅当需要时, 才能为对象赋予会话或应用程序作用域。 因为在会话或应用程序结束运行之前, 这些对象会一直保留。 它们会占用内存或数据库连接等资源, 这些资源可能会在其他方面更 有用。另外,组件的线程模型会影响您从中所创建的对象的性能,尤其是那些具有会话或应 用程序作用域的对象。 在很多情况下, 比创建应用程序或会话作用域对象更好的方法就是利用会话或应用程序作用 域变量,将信息传递给在网页一级创建的对象。例如,不要为 ADO Connection 对象赋予会 话或应用程序作用域, 因为它创建的连接会在相当长的一段时间一直保持打开而此时脚本已 不再使用 ODBC 连接共享。 但您可以将 ODBC 连接字符串存储在 Session 或 Application 内建对象中,并在网页上从创建的 Connection 对象实例中获取该字符串。通过这种方式, 您可以存储在会话或应用程序名称空间中频繁使用的信息, 但只有在需要时才创建用该信息 的对象。关于作用域变量的详细信息,请参阅“使用变量和常量” 。 用户自定义的 JScript 对象 您可以通过定义一个创建和初始化新对象的属性和方法的构造函数来创建自己的 JScript 对象。当脚本用 new 操作符来调用构造函数时,就会创建该对象的实例。ASP 脚本支持用 户自定义的对象,当具有页作用域时,后者正常运行。但如果为用户自定义的 JScript 对象 赋予应用程序或会话作用域,将可能影响该对象的功能。特别是,若一个对象具有会话或应 用程序作用域,则其他页的脚本可以获取该对象的属性,但是却不能调用其方法。 高级信息:性能问题 组件的线程模型可能会影响 Web 站点的性能,一般来说,带有 Both 标记的对象是推荐在 所有的 ASP 脚本中使用的对象,尤其是在 Session 和 Application 对象中。不推荐使用单 线

  无论您的计划多么精密、 经验多么丰富, 脚本错误(bug)可能在最初就使您的 ASP 服务器端 的脚本无法正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的 ASP 程序是非常重要的。 Microsoft 脚本调试工具

  Microsoft? Script Debugger 是一个功能强大的调试工具,它能帮助您迅速查找错误并对服务 器端的脚本进行交互测试。Script Debugger 与 Windows Internet Explorer 3.0 版本或更新的 版本一起工作。通过它,您可以: 逐行运行服务器端脚本。 在服务器端脚本执行时,打开命令窗口监视变量、属性或数组元素的值。 在特定行设置暂停标记,挂起服务器端脚本(使用调试工具或脚本命令) 。 在运行服务器端脚本时跟踪过程。 注意 您可以使用调试工具查看脚本并找到错误所在,但是不能直接编辑脚本。要想改正错 误,必须用编辑器编辑脚本然后保存,再运行脚本。 详细信息,请参阅 Microsoft 脚本调试程序. (该功能不能用于 Windows 95 或更高的版本。 ) 启用调试 在开始调试服务器端脚本之前,您必须首先配置 Web 服务器,使其支持 ASP 调试。有关 配置命令及信息,请参阅 启用 ASP 调试。 在启用 Web 服务器调试之后,就可以使用下面的任一方法调试脚本: 手工打开 Microsoft 脚本调试器,调试 ASP 服务器端脚本。 使用 Internet Explorer 请求 .asp 文件。如果该文件包含错误或人为添加的停止执行语句, 那么 Microsoft 脚本调试程序将自动启动,显示该脚本,并且指出错误来源。 脚本错误 调试服务器端脚本时, 您可能会碰到各种类型的错误。 其中的某些错误使脚本无法正确执行、 程序停止执行或返回错误结果。 语法错误 语法错误是经常碰到的错误,它是由不正确的脚本语法导致的。例如,命令拼写错误或传递 给函数的参数不正确都将产生错误。语法错误可能导致您的脚本不能运行。 运行时错误 运行时错误是脚本在执行过程中脚本指令试图执行不可能的动作而导致的。 例如, 下面的脚 本中包含一个被零除(一种非法的数学运算)的函数,将产生运行时错误: script language = VBScript runat = server Result = Findanswer(15) document.write (The answer is &Result) Function Findanswer(x) This statement generates a run-time error. Findanswer = x/0 End Function /script 必须纠正导致运行时错误的错误,这样才能使脚本在运行时不被中断。 逻辑错误 逻辑错误通常可能是潜在和难以检测的。 如果有因键入错误或程序逻辑流程错误引起的逻辑 错误,脚本可能会成功运行,但产生的结果却是错的。例如,一服务器端脚本计划对一个值 列表排序,如果本应使用 “” 符号比较数值,但却使用了“ ” 符号,那么将返回不正确 的排序结果。 错误调试技术 可以使用多种不同的调试技术来查找错误的根源并测试应用程序。 实时 (Just-In-Time, JIT) 调试

  权限是 Web 服务器安全性的基础个人ASP学习,它定义了一个或一组用户访问文件和目录的不同级别。 当拥有 Windows NT 有效帐号的用户试图访问一个有权限限制的文件时,计算机将检查文 件的 访问控制表 (ACL)。该表定义了不同用户和用户组所被赋予的权限。如果用户的帐号 具有打开文件的权限,计算机则允许该用户访问文件。例如,Web 服务器上的 Web 应用 程序的所有者需要有“更改”权限来查看、更改和删除应用程序的 .asp 文件。但是,访问 该应用程序的公共用户应仅被授予“只读”权限,以便将其限制为只能查看而不能更改应用 程序的 Web 页。 维护 Global.asa 的安全 为了充分保护 ASP 应用程序, 一定要在应用程序的 Global.asa 文件上为适当的用户或用户 组设置 NTFS 文件权限。如果 Global.asa 包含向浏览器返回信息的命令而您没有保护 Global.asa 文件,则信息将被返回给浏览器,即便应用程序的其他文件被保护。 有关配置 NTFS 权限的详细信息,请参阅 访问控制。 注意 一定要对应用程序的文件应用统一的 NTFS 权限。 例如,如果您不小心过度限制了一 应用程序需要包含的文件的 NTFS 权限,则用户可能无法查看或运行该应用程序。为了防 止此类问题,在为您的应用程序分配 NTFS 权限之前应仔细计划。 Web 服务器权限 您可以通过配置您的 Web 服务器的权限来限制所有用户查看、运行和操作您的 ASP 页的 方式。 不同于 NTFS 权限提供的控制特定用户对应用程序文件和目录的访问方式, Web 服 务器权限应用于所有用户,并且不区分用户帐号的类型。 对于要运行您的 ASP 应用程序的用户,在设置 Web 服务器权限时,必须遵循下列原则: 对包含 .asp 文件的虚拟目录允许“读”或“脚本”权限。 对 .asp 文件和其他包含脚本的文件(如 .htm 文件等)所在的虚目录允许“读”和“脚本” 权限。 对包含 .asp 文件和其他需要“执行”权限才能运行的文件(如 .exe 和 .dll 文件等)的虚 目录允许“读”和“执行”权限。 有关配置 Web 服务器权限的详细信息,请参阅 访问控制。 脚本映射文件 应用程序的脚本映射保证了 Web 服务器不会意外地下载 .asp 文件的源代码。例如,即使 您为包含了某个 .asp 文件的目录设置了“读”权限,只要该 .asp 文件隶属于某个脚本映 射应用程序,那么您的 Web 服务器就不会将该文件的源代码返回给用户。 Cookie 安全性 ASP 使用 SessionID cookie 跟踪应用程序访问或会话期间特定的 Web 浏览器的信息。这 就是说,带有相应的 cookie 的 HTTP 请求被认为是来自同一 Web 浏览器。Web 服务器 可以使用 SessionID cookies 配置带有用户特定会话信息的 ASP 应用程序。例如,如果您 的应用程序是一个允许用户选择和购买 CD 唱盘的联机音乐商店,就可以用 SessionID 跟 踪用户漫游整个应用程序时的选择。 SessionID 能否被黑客猜中? 为了防止计算机黑客猜中 SessionID cookie 并获得对合法用户的会话变量的访问,Web 服 务 器 为 每 个 SessionID 指 派 一 个 随 机 生 成 号 码 。 每 当 用 户 的 Web 浏 览 器 返 回 一 个 SessionID cookie 时,服务器取出 SessionID 和被赋予的数字,接着检查是否与存储在服务 器上的生成号码一致。若两个号码一致,将允许用户访问会话变量。这一技术的有效性在于 被赋予的数字的长度(64 位) ,此长度使计算机黑客猜中 SessionID 从而窃取用户的活动 会线。 加密重要的 SessionID Cookie

  变量是计算机内存中已命名的存储位置, 其中包含了数字或字符串等数据。 变量包含的信息 被称为变量的值。 变量使用用户便于理解脚本操作的名称为用户提供了一种存储、 检索和操 作数据的途径。 声明和命名变量 命名和声明变量应遵循脚本语言的规则及指导。 即使在使用变量前不需要去声明变量, 也应 养成在编程时声明变量的良好习惯, 因为这样有助于防止错误发生。 声明一个变量意味着告 诉脚本引擎,有一个特定名称的变量,这样就可以在脚本中引用该变量。 VBScript VBScript 并不需要声明变量,但在使用所有变量前声明它们是一种好的脚本书写习惯。要 在 VBScript 中声明变量,请用 Dim、 Public 或 Private 语句。例如: % Dim UserName % 可以在需要显式声明变量的 .asp 文件中用 VBScript Option Explicit 语句。Option Explicit 必须在任何一个 ASP 指令之后及任何一个 HTML 文本或脚本命令之前出现。该语句仅影 响用 VBScript 书写的 ASP 命令,而不会影响 JScript 命令。 关于这些命令的详细信息,请参阅 VBScript 语言参考。 JScript Microsoft JScript 仅当变量为本地过程变量时才需声明,但在使用所有变量前声明它们是一 种好的脚本书写习惯。要声明一个变量,请使用 var 语句。例如: % var UserName; % 有关 var 语句的详细信息,请参阅 JScript 语言参考。 变量作用域 变量的作用域即生命期, 决定哪些脚本命令可访问变量。 在过程内部声明的变量具有局部作 用域。每执行一次过程,变量就被创建然后消亡。而过程外部的任何命令都不能访问它。在 过程外部声明的变量具有全局作用域,其值能被 ASP 页上的任何脚本命令访问和修改。 声明变量时, 局部变量和全局变量可以有相同的名称。 而改变其中一个的值并不会改变另一 个的值。如果没有声明变量,则可能不小心会改变一个全局变量的值。例如,以下脚本命令 返回值 1,虽然有两个名为 Y 变量: % Dim Y Y=1 Call SetLocalVariable Response.Write Y Sub SetLocalVariable Dim Y Y=2 End Sub % 由于变量没有显式声明,以下的脚本命令将返回 2。当过程调用将 Y 设置为 2 时,脚本 引擎认为该过程是要修改全局变量: % Y=1 Call SetLocalVariable

  脚本语言是介于 HTML 和 Java、 C 和 Visual Basic 之类的编程语言之间的语言。 HTML 通常用于格式化文本和链接网页。 编程语言通常用于向计算机发送一系列复杂指令。 脚本语 言也可用来向计算机发送指令,但它们的语法和规则没有可编译的编程语言那样严格和复 杂。脚本语言主要用于格式化文本和使用以编程语言编写的已编译好的组件。 Active Server Pages 使 Web 开发商用多种脚本语言编写完整的过程成为可能。事实上,在 单个 .asp 文件内部就可以使用多种脚本语言。 另外, 由于脚本是在服务器端读取和处理的, 所以请求 .asp 文件的客户端浏览器并不需要支持脚本。 您可以使用任意一种其相应的脚本引擎已安装在 Web 服务器上的脚本语言。 脚本引擎是处 理用某种语言书写的命令的程序。Active Server Pages 带有两个脚本引擎:Microsoft Visual Basic Scripting Edition (VBScript) 和 Microsoft JScript。 您也可以安装和使用其他的脚本语言 引擎,例如 REXX 和 Perl。 如果您已经是 Visual Basic 程序员,就可以马上使用 VBScript,它是 Visual Basic 的子集。 如果您是 Java、 或 C 程序员, C 您会发现 JScript 语法对您来说是熟悉的, 虽然 JScript 与 Java 或 C 并没有联系。 如果您熟悉其他脚本语言,例如 REXX 或 Perl,您可获取和安装相应的脚本引擎,这样就 可以使用您熟悉的脚本语言了。 Active Server Pages 是 ActiveX 脚本的宿主。 要使用一种语 言,必须安装脚本引擎,该引擎必须遵循 ActiveX 脚本标准并作为一个 COM (组件对象 模型)对象驻留在 Web 服务器上。 设置主脚本语言 ASP 主脚本语言 是用来处理在分界符 % 和 % 内部的命令的语言。默认时,主脚本语 言是 VBScript。您可以将任何一种具有脚本引擎的脚本语言作为主脚本语言。您可以逐页 设置主脚本语言,也可以在 ASP 应用程序中设置所有页的主脚本语言。 为某页设置语言 要设置单个页的主脚本语言,可将 %@ LANGUAGE % 指令添加到 .asp 文件的开头。 该指令的语法是: %@ LANGUAGE=ScriptingLanguage % 其中 ScriptingLanguage 就是您所设置的页的主脚本语言。如果对某页进行了设置,那么该 页将忽略在应用程序中对所有页的全局设置。 请遵循使用 ASP 指令的指导。详细信息,请参阅 创建 ASP 页。 注 意 要 将 不 支 持hod 语 法 的 语 言 作 为 主 脚 本 语 言 使 用 , 必 须 先 创 建 LanguageEngines 注册表键。详细信息,请参阅 注册表。 为应用程序设置语言 在应用程序中,如要为所有页设置主脚本语言,可在 Internet 服务管理器的“App 选项” 选项卡上设置“默认的 ASP 语言”属性。详细信息,请参阅配置 ASP 应用程序。 在服务器上使用 VBScript 和 JScript 在服务端通过 ASP 使用 VBScript 时,两个 VBScript 特征将失效。由于 Active Server Pages 脚本是在服务器端执行的,表示用户接口的元素的 VBScript 语句 InputBox 和 MsgBox 将不被支持。 另外, 在服务器端的脚本中, 请不要使用 VBScript 函数 CreateObject 和 GetObject。而要使 用 Server.CreateObject,这样 ASP 就可 以跟踪对象实例 了。用 CreateObject 或 GetObject 创建的对象不能访问 ASP 内建对象,也不能参与事务处理。该 规则的一个例外是如果您使用的是 Admin 对象和 Java monikers。详细信息,请参阅 IIS

  键入运行 SQL 服务程序的服务器的名称、登录 ID 和密码。 在“创建 SQL Server 的新数据源”对话框中,在“服务器”列表框中键入包含 SQL Server 数据库的服务器的名称,然后单击“下一步” 。 选择验证登录 ID 的方式。 如果要选择 SQL 服务器验证,请输入一个登录 ID 和密码,然后单击“下一步” 。 在“创建 SQL Server 的新数据源”对话框中,设置默认数据库、存储过程设置的驱动程序 和 ANSI 标识,然后单击“下一步”(要获取详细信息,请单击“帮助”) 。 。 在对话框(同样名为“创建 SQL Server 的新数据源” )中,选择一种字符转换方法,然后 单击“下一步” (详细信息,请单击“帮助”) 。 。 在下一个对话框(同样名为“创建 SQL Server 的新数据源” )中,选择登录设置。 注意 典型情况下, 您只能使用日志来调试数据库访问问题。 在“ODBC Microsoft SQL Server 安装程序”对话框中,单击“测试数据源” 。如果 DSN 正 确创建, “测试结果”对话框将指出测试成功完成。 SQL server 连接和安全信息 如果您正在开发用于连接远程 SQL Server 数据库的 ASP 数据库应用程序,应考虑以下问 题: 连接方案- 您可以选择 TCP/IP 套接字和命名管道的方法访问远程的 SQL Server 数据库。 当使用命名管道时,因为在建立连接之前,数据库用户必须被 Windows NT 确认,所以对 只有适当的 SQL Server 访问身份而在该计算机上没有 Windows NT 用户帐号的用户可能 会被拒绝访问命名管道。 作为一种替代方案, 使用 TCP/IP 套接字的连接可直接连接到数据 库服务器, 而不必通过使用命名管道的中间计算机。 因为使用 TCP/IP 套接字连接可直接连 接到数据库 server,所以通过 SQL Server 的确认,用户就可以获得访问权,而不必通过 Windows NT 的确认。 注意 在连接到远程数据库时使用 TCP/IP 套接字可提高性能。 安全性 - 如果您使用 SQL Server 的 集成 或 混合 安全特性, 并且 SQL Server 数据库位 于远程服务器上,则不能使用 Windows NT 请求/响应的确认。也就是说,不能将 Windows NT 请求/响应身份证转发到远程计算机上,而只能使用基本身份验证,它根据用户提供用 户名和口令信息进行。 有关这一主题的详细信息,请参阅 上的 Microsoft SQL Server 技术支持主页。 配置 Oracle 数据库文件 DSN 首先要确保 Oracle 用户软件被正确地安装要创建 DSN 的计算机上。详细信息,请与服务 器管理员联系或参阅数据库软件文档。 在“创建新数据源” 对话框中, 从列表框中选择 “Microsoft ODBC for Oracle”, 然后单击 “下 一步” 。 键入 DSN 文件的名称,然后单击“下一步” 。 单击“完成”创建数据源。 输入用户名、密码和服务器名,然后单击“确定” 。 注意 DSN 文件用 .dsn 扩展名,位于 ProgramsCommon FilesODBCData Sources 目录 中。 有 关 创 建 DSN 文 件 的 详 细 信 息 , 请 访 问 Microsoft ODBC Web 站 点 : 。 连接数据库 访问数据库信息的第一步是和数据库源建立连接。ADO 提供 Connection 对象,可以使用

  ActiveX Data Objects (ADO) 是一项容易使用并且可扩展的将数据库访问添加到 Web 页的 技术。可以使用 ADO 去编写紧凑简明的脚本以便连接到 Open Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源。如果您是一个对数据库连接有一定了解 的脚本编写人员,那么您将发现 ADO 命令语句并不复杂而且容易掌握。同样地,如果您 是一个经验丰富的数据库编程人员,您将会正确认识 ADO 的先进的与语言无关性和查询 处理功能。 创建 ODBC DSN 文件 在创建数据库脚本之前,必须提供一条使 ADO 定位、标识和与数据库通讯的途径。数据 库驱动程序使用 Data Source Name (DSN) 定位和标识特定的 ODBC 兼容数据库,将信息 从 Web 应用程序传递给数据库。典型情况下,DSN 包含数据库配置、用户安全性和定位 信息,且可以获取 Windows NT 注册表项中或文本文件的表格。 通过 ODBC, 您可以选择希望创建的 DSN 的类型: 用户、 系统 或 文件。 用户和系统 DSN 存储在 Windows NT 注册表中。系统 DSN 允许所有的用户登录到特定的服务器上去访问 数据库,而用户 DSN 使用适当的安全身份证明限制数据库到特定用户的连接。文件 DSN 用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制 DSN 文件,可以轻易 地从一个服务器转移到另一个服务器。由于以上原因,本主题中的示例将使用文件 DSN。 通过在 Windows 的“开始”菜单打开“控制面板” ,您可以创建基于 DSN 的文件。双击 “ODBC”图标,然后选择“文件 DSN”属性页,单击“添加” ,选择数据库驱动程序,然后 单击“下一步” 。按照后面的指示配置适用于您的数据库软件的 DSN。 配置 Microsoft Access 数据库的文件 DSN 在“创建新数据源”对话框中,从列表框选择“Microsoft Access Driver”,然后单击“下一 步” 。 键入您的 DSN 文件名,然后单击“下一步” 。 单击“完成”创建数据源。 在“ODBC Microsoft Access 97 安装程序”对话框中,单击“选择” 。选择 Microsoft Access 数据库文件 (*.mdb),然后单击“确定” 。 注意 由于性能和可靠性的原因,我们极力推荐您使用“客户-服务器数据库引擎”配置由这 样一种 Web 应用程序驱动的数据,这些 Web 应用程序必须满足 10 个以上的用户的同时 访问。尽管 ASP 可以使用任何 ODBC 兼容的数据库,但它是为使用客户-服务器数据库而 设计的,而且经过了严格的测试,这些数据库包括 Microsoft ? SQL Server、Oracle 等。 ASP 支持共享文件数据库(如 Microsoft ? Access 或 Microsoft ? FoxPro)作为有效的数据 源。尽管在 ASP 文档中的一些示例使用共享文件数据库,但我们建议只将此类数据库引擎 用于开发或有限的配置方案。 共享文件数据库可能无法很好地适用于可满足高需求、 高质量 的 Web 应用程序的客户-服务器数据库。 配置 SQL Server 数据库文件 DSN 注意 如果数据库驻留在远程服务器上,请与服务器管理员联系,获取附加的配置信息;下 面的过程使用 SQL Server 的 ODBC 默认的设置,它可能不适用于您的硬件配置。 在“创建新数据源”对话框中,从列表框中选择“SQL Server”,然后单击“下一步” 。 键入 DSN 文件的名称,然后单击“下一步” 。 单击“完成”创建数据源。

  当一个运行时错误中断了 ASP 脚本的执行时, Microsoft 脚本调试程序自动启动, 显示 .asp 文件, 将语句指针指向导致错误的行, 并产生错误消息。 这种调试方式称为实时 (JIT) 调试, 计算机将暂停程序的执行。必须用编辑程序纠正这些错误,保存所做的修正,然后再运行脚 本。 断点调试 当一个错误发生并且很难找到错误的根源时, 可使用预设断点的调试方法。 断点将脚本暂停 在特定一行。 可以在脚本中有疑问处设置一个或多个不同的断点, 然后使用调试器去改正脚 本中设置的变量或属性的值。 当您纠正这些错误之后, 可以清除断点以便您的脚本能不间断 地运行。 请用 Microsoft 脚本调试程序打开脚本,设置断点。然后用 Web 浏览器请求此脚本。当执 行到脚本中含有断点的行时, 计算机启动脚本调试程序, 并且语句指针会指在设置了断点的 行上。 VBScript Stop 语句调试器 通过在服务器端脚本中有问题的部分前面插入 Stop 语句,您也可以将断点添加到用 VBScript 编写的服务器端脚本中。例如,下面的 ASP 脚本包含一个 Stop 语句,用来在显 示结果之前暂停执行: % dayvalue = 3 TheDay = WeekDayName(dayvalue) Stop set breakpoint here. Response.Write(Today is TheDay) % 当您在请求 Web 浏览器使用的先前的脚本时,调试程序启动并自动显示 .asp 文件,而且 语句指针会指示 stop 语句的位置。一定要记住从交付使用的 .asp 文件中删除 Stop 语句。 用 JScript Debugger 语句调试 要将断点加到用 Microsoft? JScript 编写的服务器端脚本中,可在有疑问的行前插入 debugger 语句。例如,下面的脚本包含了 debugger 语句,每次脚本循环到一个新值时,就 会中断执行并自动启动 Microsoft 脚本调试程序。 %@ Language=JScript % % for (var count = 1; count = 10; count) { var eventest = count%2; debugger //Sets breakpoint if (eventest == 0) { response.write(Even value is count br) } } % 请记住从交付使用的 .asp 文件中删除 debugger 语句。 注意 不要混淆 debugger 语句和 JScript break 语句。在程序执行期间,break 语句仅退出 当前循环,并不激活 Microsoft 脚本调试器,也不暂停程序的执行。 脚本调试技巧 除脚本调试程序外, 一套好的调试技巧也能减少花费在分析脚本错误根源上的大量时间。 尽 管大部分错误是由显而易见的根源导致的, 但命令拼写错误或丢失变量、 某种类型的逻辑和

  因为您可能不会始终控制所用对象的线程模型,所以,以下的指导可帮助您获得最佳性能: 页作用域对象。带有 Both 或 Apartment 标记的对象将给予您最佳的性能。 应用程序作用域对象。一般来说,应避免在 Application 对象中放置对象。如果确需使用应 用程序作用域对象,您会从结合了 FreeThreadedMarshaler 的带有 Both 标记的对象中获得 最佳性能。您既可以用 OBJECT 标记也可以用 Server.CreateObject 方法在 Application 对 象中 存储 带有 Single 、 Free 或 Both 标 记的对 象。 您必 须用 单元 线程 对象 来使用 OBJECT 标记。 会话作用域对象。 带有 Both 标记的对象将为您提供最佳性能。用单线程或单元线程对象会 导致 Web 服务器将会话锁定在一个线程上。 自由线程对象不会锁定会话, 但运行速度不高。 在 Session 对象中,您可以用 OBJECT 标记或 Server.CreateObject 方法存储对象 。 如果您已安装了 SDK 文档,请参阅“创建 ASP 组件” ,您将会获得有关线程模型及其隐 含的组件性能的详细信息。 在 Windows 95 及其后续版本中 SDK 文档不可用。 ( )中小学学习网

版权声明:本文为 “个人代码云儿美,个人php学习” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://a.shandingren.com/a/xz/2022/1202/275.html

标签:asp教学 
留言与评论(共有 条评论)
昵称:
匿名发表
验证码: 点击我更换图片
排行榜
关于我们
扫码关注
Copyright © 2002-2017 南缘网 湘ICP备2022026174号-1