快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

ASP 3.0对ASP 2.0的改进

ASP 3.0对ASP 2.0的改进

下面的一些特征是从2.0版本中改进或升级来的。

1、 缓冲缺省为打开状态
ASP提供可选的输出缓冲。从IIS 4.0开始,这使得脚本执行得更快,并提供对流向浏览器的输出的控制能力。在ASP 3.0这个改进的性能通过改变Reponse.Buffer属性的缺省设置为True而反映出来。缺省状态下缓冲是打开的,这意味着最终输出只有在进程完成时,或脚本调用Response.Flush或Response.End方式时,才送至客户端。
注重,可以通过设置Response.Buffer属性为False,关闭缓冲。只有这样,才能发送XML格式化输出给客户端,让XML分析器在收到输出后开始工作。也可以使用Response.Flush发送大页面的一部分,这样使用户可以很快看到部分输出。

2、 Response.IsClientConnected的变化
Response.IsClientConnected属性可以在没有任何内容发送给客户端的情况下被读取到。在ASP 2.0中,这只在至少有一部分内容被发送后才能返回正确的信息。这一改进解决了IIS必须响应每个客户的哀求(即使客户可能已经转移到另一个页面或站点)的问题。同时如客户在3秒内没有再连接,服务器上创建的完整的输出信息将被丢弃。

3、  带有默认文档的查询字符串
如果一个用户访问一个站点而不提供所哀求页面的名字,默认的文档(如存在的话)将被送往客户端。然而如果他们提供了附在URL后面的查询字符串,这在早先的ASP版本中是被忽略的,而在IIS 5.0和ASP 3.0中这个查询字符串将被送到缺省页面。例如,在一个URL为:http://www.wrox.com/store/的目录中缺省页面为default.asp,则下面这两种情况都将名称/值对Code=1274送往default.asp页面:
http://www.wrox.com/store/?code=1274
http://www.wrox.com/store/default.asp?code=1274

4、 服务器端包含文件的安全性
服务器端的包含文件常用于一些敏感的信息,如数据库连接字符串或其他访问细节。一个虚拟的路径(即URL而不是完整的物理磁盘文件路径)可以用来指定这些文件。在这种情况下,早先的ASP版本不核对文件的安全设置和用户的证书;换句话说,授权(验证后)的用户和匿名的Web服务器帐号都没有与文件的访问控制列表相比较。在IIS 5.0和ASP 3.0,这些证书将被检查以防止非授权访问。

5、 可配置项移到元数据库中
在IIS 5.0中ProcessorThreadMax和ErrorsToNTLog的注册项被移到元数据库中,所有有ASP可配置参数能够通过Active Directory和Active Directory服务接口(ADSI)在元数据库中修改。

6、 应用程序中的双线程对象的性能
为了常有多个并发哀求的ASP中获得最佳性能,组件应是双线程的(Both-Threaded)――即单线程单元(Single Threaded Apartment,STA)和多线程单元(Multi-Threaded Apartment,MTA),并且支持COM Free-Thread Marshaller(FTM)。不支持FTM的双线程的COM对象如果被存储在ASP Application状态对象中,将导致运行失败。

7、 更早释放COM对象
在IIS 5.0中,实例化的对象或组件可更早释放。在IIS 4.0中,COM对象只有在ASP处理完一个页面时才能释放。在IIS 5.0中,如果一个COM对象不使用OnEndPage方式,且对象的引用计数达到零,则这个对象在处理完成之前就被释放了。

8、  缺省时ASP答应进程外组件
定制的本地服务器组件现在可以从IIS中被实例化,而不需要改变数据库的设置。控制本地服务器实例化的元数据库属性AspAllowOutOfProcComponents缺省值为1,在IIS早期版本为0。

9、  COM对象的安全性
IIS使用了新的由COM+提供的cloaking特性,因此,从ASP实例化的本地服务器应用程序可以运行在原始的客户的安全环境中。在早期版本中,安全环境被指派到本地服务器COM对象,依靠于调用进程的身份。

10、缺省时组件运行在进程外
       在ASP早期版本中,所有在ASP页面环境中创建的组件缺省时运行在进程内。
       为在组件的性能和Web服务器安全性之间折衷,对于一个虚拟的应用程序,可以从Properties对话框中Application Protection的三个选项中选择:
       ・ Low(IIS Process)
       这种设置的ASP虚拟应用程序可执行文件和组件都运行在Web服务器可执行文件(Inetinfo.exe)的进程(即内存空间)中。因此,Web服务器就有受到可执行文件或组件失败影响的风险,然而这提供了最快的和最少资源的应用程序执行选项。
       ・ Medium(Pooled)――这是缺省设置
       这种设置的ASP虚拟应用程序的所有应用程序可执行文件和组件都运行在单个共享的DLLHost.exe实例的进程(即内存空间)中。这保护了Web服务器可执行文件(Inetinfo.exe)免受任何一个可执行文件或组件失败带来的风险。然而,可执行文件或组件的失败会引起DLLHost.exe进程失败,进而所有其他驻留其中的可执行文件和组件也会失败。
       ・ High(Isolated)
       这种设置的ASP虚拟应用程序的所有应用程序可执行文件和组件都运行在单个DLLHost.exe实例的进程(即内存空间)中,但是每个ASP应用程序都有自己的DLLHost.exe实例。DLLHost.exe对应用程序而言是独有的,这保护Web服务器可执行文件免受任何一个可执行文件或组件失败带来的问题。微软建议在任何一个Web服务器上最多驻留10个隔离的虚拟应用程序。
       推荐的配置是:在它们自己的进程中运行对于任务要害的应用程序,即High(Isolated);余下的所有应用程序在一个共享的进程中运行,即Medium(Pooled)。也可设置组成每个虚拟应用程序的脚本和组件的执行权限(Execute Permission),三个选项是:
1)    None:在这个虚拟的应用程序中不能运行脚本或可执行文件。在实际效果上,这提供了一个在必要时迅速和简便地禁止一个应用程序的方法。
2)    Scripts only:仅答应脚本文件,诸如ASP、IDC或其他,能够在这个虚拟应用程序中运行,可执行文件不能运行。
3)    Scripts and Executables:答应任何脚本和可执行文件在这个虚拟应用程序中运行。


返回类别: 教程
上一教程: 手把手教你使用VB来创建ASP组件(4) 
下一教程: 用asp.net写的论坛程序

您可以阅读与"ASP 3.0对ASP 2.0的改进"相关的教程:
· 利用ASP改进文档上载控件
· 改进的ASP备份SQL SERVER数据库
· 对正则表达式训练器的改进
· 改进性能和样式的 25+ ASP 技巧(4)
· 一个改进的ASP生成SQL 命令字符串的类
    微笑服务 优质保证 索取样品