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:允许任何脚本和可执行文件在这个虚拟应用程序中运行。

设定asp服务器外部组件对象的方法是,ASP 3.0对ASP 2.0的改进相关推荐

  1. Asp.net 内置对象

    (1)简述ASP.NET内置对象. 答:ASP.NET提供了内置对象有Page.Request.Response.Application.Session.Server.Mail和Cookies.这些对 ...

  2. ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

    第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.N ...

  3. ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl

    第四章 组合控件开发CompositeControl 大家好,今天我们来实现一个自定义的控件,之前我们已经知道了,要开发自定义的控件一般继承三个基 类:Control,WebControl,还有一个就 ...

  4. ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

    第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是行不 通.如果大家开发的是WinForm中的事件,之前的定义可能没有什 ...

  5. ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

    ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例 ...

  6. Spring IOC容器和获取组件对象源码分析

    打上断点进行调试 1 第一步是进入了ClassPathXmlApplicationContext调用其构造参数,其中配置文件的内容被解析成了数组 public ClassPathXmlApplicat ...

  7. NET程序设计 实验五 ASP.NET内置对象

    计算机学院实验报告 课程名称 .NET程序设计 实验名称 实验五 ASP.NET内置对象 一.实验目的: 1.理解ASP.NET内置对象的作用. 2.掌握Response内置对象的方法及属性. 3.掌 ...

  8. asp服务器组件安装包,ASP服务器组件

    <ASP服务器组件>由会员分享,可在线阅读,更多相关<ASP服务器组件(20页珍藏版)>请在人人文库网上搜索. 1.7/10/2020,1,网络开发技术,第二部分 ASP开发技 ...

  9. asp服务器组件安装包,ASP服务器组件.ppt

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp通信/网络 ASP服务器组件.ppt47页 本文档一共被下载:次 ...

  10. asp服务器_200行代码,7个对象——让你了解ASP.NET Core框架的本质「3.x版」

    2019年1月19日,微软技术(苏州)俱乐部成立,我受邀在成立大会上作了一个名为<ASP.NET Core框架揭秘>的分享.在此次分享中,我按照ASP.NET Core自身的运行原理和设计 ...

最新文章

  1. 后序遍历的非递归算法python_二叉树后序遍历(递归与非递归)算法C语言实现...
  2. 一个恶心的无法同步服务器与pda时间的龌龊问题
  3. Ashikhmin-Shirley, cook- torrance, ward -duer 对比
  4. 线性回归代码matlab
  5. 解决读写分离过期读的几个方案
  6. 王淮经验谈:我的码农原则
  7. VB版双语对照制作助手
  8. python修饰符的理解_python函数修饰符@的使用方法解析
  9. java后台发送请求并获取返回值(续)
  10. kali系统支持那些手机_将kali安装到手机上作为便携式系统启动盘的方法
  11. 硬盘整数分区最精确地方法(转载)
  12. Python 进阶 —— 使用 map reduce
  13. 解决:Conversion to Dalvik format failed: Unable to execute dex: null
  14. 车间调度建模系列2|复杂车间调度问题描述
  15. buuctf-变异凯撒
  16. 算法:(七)模拟算法
  17. 控制台上对同一个设备进行数据收发监控
  18. 在java语言中所有类都是,【填空题】(10-1)Java语言中,( )是所有 类的祖先类。
  19. ts 正负条形图 组件_手把手教你使用ggplot2绘制条形图
  20. 基本共射放大电路的动态分析以及放大电路Q点的稳定

热门文章

  1. git revert 之后怎么撤销_Git撤销回滚操作(git reset 和 get revert)
  2. 曾辉机器人_工业机器人市占率5年来首现下滑 “春寒”中国产机器人如何突围?...
  3. python怎么引入os模块的函数_Python之OS模块函数
  4. php 变量 unset,在PHP中unset变量
  5. python滤波器信号处理_详解利用Python scipy.signal.filtfilt() 实现信号滤波
  6. linux 信号量_SystemV IPC通信信号量
  7. java 不同时区时间转换_Java中的时区转换小结
  8. 计算机辅助英语教学 研究背景,计算机辅助外语教学中的教师角色研究
  9. java doc书写_apidoc利用代码注释书写文档
  10. 载入java VM时出错216_Android6.0中oat文件的加载过程