王朝网络
分享
 
 
 

IIS6.0下ASP的一些新增加的功能

王朝asp·作者佚名  2008-05-19
宽屏版  字体: |||超大  

ASP 的新增功能

除了内部性能增强和优化外,该版本的 Active Server Pages(ASP) 还具有如下新功能:

更好的国际化和 UTF-8 支持

改进的 POST 支持

ASP 挂起检测

常用文件的缓存

UNC 增强

ASP 中的 COM+ 服务

单元模型选择

并排集合

COM+ 分区

跟踪程序

事务

ASP 的新配置数据库属性

更好的国际化和 UTF-8 支持

UTF-8 支持已经被扩展到所有 ASP 内置对象的属性和方法中。上一版本的 ASP 仅在响应和写入方面支持 UTF-8。

改进的 POST 支持

ASP 目前可以从客户端读取 Chunked 编码的 POST 数据。

ASP 挂起检测

当 IIS 网站繁忙时,可能会出现这样的情况:迅速生成最大数量的 ASP 线程,其中的一些 ASP 线程被挂起,从而导致性能下降。 HSE_REQ_REPORT_UNHEALTHY 以及万维网发布服务(WWW 服务)将回收主控 ASP.dll 的工作进程,并将项目添加到事件日志中。

注意 如果线程不响应超时,则将其视为“挂起”。

常用文件的缓存

目前,ASP 除了保留内存缓存之外,还在磁盘上缓存一些最常用的文件。磁盘缓存的默认位置是 %systemroot%System32inetsrvASP Compiled Templates。可以通过设置 AspDiskTemplateCacheDirectory 配置数据库属性来更改硬盘缓存的位置。

UNC 增强

目前,ASP 能够处理 ASP 脚本中的 UNC 路径。

ASP 中的 COM+ 服务

如果想要在以前版本的 IIS 中使用 ASP 应用程序提供的 COM+ 服务,您必须创建可以调用那些服务的方法的 COM 组件。目前,您可以配置 ASP 应用程序以使用下面的 COM+ 服务而不必创建 COM 组件:

单元模型选择:

ASP 现在能够在多线程单元 (MTA) 中运行其全部线程。如果 COM 组件主要是自由线程或双线程组件,则将 ASP 线程作为 MTA 运行可显著改善性能。

要使 ASP 应用程序能够在 MTA 中运行,您可以在应用程序级别使用配置数据库设置 AspExecuteInMTA。这意味着您可以让一个应用程序运行于 ASP MTA 线程上,而让第二个应用程序运行于 ASP STA(单线程单元)线程上。ASP 线程的默认设置仍为 STA。

要点 当您将 ASP 应用程序的运行环境从 STA 切换到 MTA(或从 MTA 切换到 STA)时,则模拟令牌将过时。这可能导致应用程序在无模拟的情况下运行,让其用可能允许访问其他资源的进程的标识有效地运行。如果您必须切换线程模型,请在进行更改之前禁用该应用程序并将其卸载。

下列示例设置默认网站应用程序 (W3SVC/1/ROOT) 在 MTA 中执行:

On Error Resume Next

set providerObj = GetObject("winmgmts://MyMachine/root/MicrosoftIISv2")

' 获得对名为“默认网站”的 ASP 应用程序的引用

set IIsWebVirtualDirSettingObj = providerObj.get("IIsWebVirtualDirSetting='W3SVC/1/ROOT'")

WScript.Echo "Before: AspExecuteInMTA = " & IIsWebVirtualDirSettingObj.AspExecuteInMTA

' 将 ASP 应用程序设置为在 MTA 中执行

IIsWebVirtualDirSettingObj.AspExecuteInMTA = 1

IIsWebVirtualDirSettingObj.Put_()

WScript.Echo "After: AspExecuteInMTA = " & IIsWebVirtualDirSettingObj.AspExecuteInMTA

并排集合:

并排 (SxS) 集合允许 ASP 应用程序指定要使用哪个版本的系统 DLL 或传统 COM 组件,例如 MDAC、MFS、MSVCRT、MSXML 等。例如,如果您的 ASP 应用程序依赖 MSXML 2.0 版,则可以确保即使是在服务器上应用了 Service Pack 之后,您的应用程序仍使用 MSXML 2.0 版。任何新版本的 MSXML 仍安装在计算机上,但是保留 2.0 版且由应用程序使用。配置 SxS 程序集要求您知道 DLL 的路径,且 COM+ 清单文件存在于每个需要使用 DLL 的虚拟目录中。COM+ 清单是包含有关 DLL 安装位置信息的 XML 文件。IIS 不验证清单是否存在。清单的外观类似于下面的文件摘录:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"

<assemblyIdentity publicKeyToken="75e377300ab7b886" type="win32" name="Test4Dir" version="1.0.0.0" processorArchitecture="x86"/

<file name="DirComp.dll" hash="35ca6f27b11ed948ac6e50b75566355f0991d5d9" hashalg="SHA1"

<comClass clsid="{6C6CC20E-0F85-49C0-A14D-D09102BD7CDC}" progid="DirComp.PathInfo" threadingModel="apartment"/

<typelib tlbid="{AA56D6B8-9ADB-415D-9E10-16DD68447319}" version="1.0" helpdir=""/

</file

</assembly

您可以在 IIS 端以编程方式或者通过使用 IIS 管理器来启用并排集合。

在 IIS 端使用 IIS 管理器启用并排集合

在 IIS 管理器中,右键单击网站或虚拟目录,然后单击“属性”。

单击“虚拟目录”选项卡,然后单击“配置”。

如果配置按钮不可用,那么原因是还没有为该虚拟目录创建应用程序。单击“创建”以创建一个应用程序。

在“应用程序配置”对话框中,单击“选项”选项卡。

选中“启用并排集合”复选框。

在“清单文件名”框中,键入 COM+ 清单文件的名称。

单击“确定”两次。

要通过编程启用并排集合,请设置 AspAppServiceFlags 配置数据库属性的 AspEnableSxs 标志。同时将 AspSxsName 配置数据库属性设置为 COM+ 清单的名称。在应用程序级别设置这两个配置数据库属性。

要点 即使该功能可在应用程序级别进行配置,在任何一个应用程序池中都只能使用一个版本的系统 DLL。例如,如果应用程序 App1 使用 MDAC 2.5 版,应用程序 App2 使用 MDAC 2.4 版,则 App1 和 App2 不应位于同一个应用程序池中。如果它们位于同一个应用程序池中,则首先加载的应用程序加载与之相对应的 MDAC 版本,在卸载这些应用程序之前,其他应用程序只能被迫使用该版本。

下列示例在默认网站应用程序 (W3SVC/1/ROOT) 上启用并排集合。请注意,只要设置了 AspEnableTracker 属性,AspAppServiceFlags 属性就发生改变:

On Error Resume Next

set providerObj = GetObject("winmgmts://MyMachine/root/MicrosoftIISv2")

' 获得对名为“默认网站”的 ASP 应用程序的引用

set IIsWebVirtualDirSettingObj = providerObj.get("IIsWebVirtualDirSetting='W3SVC/1/ROOT'")

WScript.Echo "Before: AspEnableSxs = " & IIsWebVirtualDirSettingObj.AspEnableSxs

WScript.Echo " AspSxsName = " & IIsWebVirtualDirSettingObj.AspSxsName

WScript.Echo " AspAppServiceFlags = " & IIsWebVirtualDirSettingObj.AspAppServiceFlags

' 设置 ASP 应用程序以启用 COM+ 并排集合

IIsWebVirtualDirSettingObj.AspEnableSxs = 1

' 设置 AspSxsName 属性

IIsWebVirtualDirSettingObj.AspSxsName = "VersionInfo"

' 将值保存到 IIS 配置数据库中

IIsWebVirtualDirSettingObj.Put_()

' 再次获得引用以刷新 AspAppServiceFlags 属性。

set IIsWebVirtualDirSettingObj = Nothing

set IIsWebVirtualDirSettingObj = providerObj.get("IIsWebVirtualDirSetting='W3SVC/1/ROOT'")

WScript.Echo "After: AspEnableSxs = " & IIsWebVirtualDirSettingObj.AspEnableSxs

WScript.Echo " AspSxsName = " & IIsWebVirtualDirSettingObj.AspSxsName

WScript.Echo " AspAppServiceFlags = " & IIsWebVirtualDirSettingObj.AspAppServiceFlags

COM+ 分区:

COM+ 分区可用于将 Web 应用程序隔离到它们各自的 COM+ 分区中。这对于禁止一个 Web 应用程访问另一个 Web 应用程序的专用 COM+ 应用程序、配置信息和数据非常有用。COM+ 分区可拥有自定义 COM 组件的不同版本。例如,如果为两个竞争的公司宿主网站,它们都在其 Web 应用程序中使用了 COM+,则可以使用 COM+ 分区来确保一个公司的 Web 应用程序不能访问另一个公司的 Web 应用程序中的 COM+ 组件。如果其中某个公司要求您更改它们都使用的 COM+ 应用程序的某些功能,您可以在链接到它们的 Web 应用程序的分区中隔离该 COM+ 应用程序的新版本。

要在 IIS 端启用 COM+ 分区,请在应用程序级别设置 AspAppServiceFlags 配置数据库属性的 AspUsePartition 标志。分区由 GUID(使用组件服务管理器管理单元创建)标识,它可在 AspPartitionID 配置数据库属性上进行设置。如果未指定任何分区,则使用默认系统分区。详细信息,请参阅 COM+ SDK 中的“创建和配置 COM+ 分区”或联机查看 COM+ (Component Services)。

要点 即使该功能可在应用程序级别进行配置,在任何一个应用程序池中也只能使用一个版本的 COM+ 组件。例如,如果应用程序 App1 使用名为 Shop.dll 的 1.0 版的自定义 COM+ 应用程序,应用程序 App2 使用 2.0 版的 Shop.dll,则 App1 和 App2 不应位于同一个应用程序池中。如果它们位于同一个应用程序池中,则首先加载的应用程序加载与之对应的 Shop.dll 版本,在卸载这些应用程序之前,另一个应用程序只能被迫使用该版本。

下列示例在默认网站应用程序 (W3SVC/1/ROOT) 上启用分区。请注意,只要设置了 AspEnableTracker 属性,AspAppServiceFlags 属性就发生改变。

On Error Resume Next

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有