网络编程
位置:首页>> 网络编程>> Asp编程>> IIS6.0下ASP的新增功能(2)

IIS6.0下ASP的新增功能(2)

  发布时间:2007-08-22 14:55:00 

标签:IIS6.0,ASP

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
set providerObj = GetObject("winmgmts://MyMachine/root/MicrosoftIISv2")
’ 获得对名为“默认网站”的 ASP 应用程序的引用
set IIsWebVirtualDirSettingObj = providerObj.get("IIsWebVirtualDirSetting=’W3SVC/1/ROOT’")
WScript.Echo "Before: AspUsePartition = " & IIsWebVirtualDirSettingObj.AspUsePartition
WScript.Echo "        AspPartitionID = " & IIsWebVirtualDirSettingObj.AspPartitionID
WScript.Echo "        AspAppServiceFlags = " & IIsWebVirtualDirSettingObj.AspAppServiceFlags
’ 设置 ASP 应用程序以启用 COM+ 分区
IIsWebVirtualDirSettingObj.AspUsePartition = 1
’ 将 AspPartitionID 属性设置为在组件服务管理器中配置的 GUID
’ 当您创建 COM+ 分区时
IIsWebVirtualDirSettingObj.AspPartitionID = "{00000000-0000-0000-0000-000000000000}"
’ 将值保存到 IIS 配置数据库中
IIsWebVirtualDirSettingObj.Put_()
’ 再次获得引用以刷新 AspAppServiceFlags 属性。
set IIsWebVirtualDirSettingObj = Nothing
set IIsWebVirtualDirSettingObj = providerObj.get("IIsWebVirtualDirSetting=’W3SVC/1/ROOT’")
WScript.Echo "After: AspUsePartition = " & IIsWebVirtualDirSettingObj.AspUsePartition
WScript.Echo "       AspPartitionID = " & IIsWebVirtualDirSettingObj.AspPartitionID
WScript.Echo "       AspAppServiceFlags = " & IIsWebVirtualDirSettingObj.AspAppServiceFlags


跟踪程序:
COM+ 跟踪程序允许管理员或开发人员调试 ASP 应用程序。例如,如果 Web 应用程序在服务器上产生问题,则可以启用 COM+ 跟踪程序,以便确定 ASP 页在何时加载、COM 组件在何时加载以及线程何时离开网页。在调试应用程序之后,可禁用 COM+ 跟踪程序,使应用程序返回到正常的执行速度。

要在 IIS 端上启用 COM+ 跟踪程序,请在应用程序级别中设置 AspAppServiceFlags 配置数据库属性的 AspEnableTracker 标志。

下列示例在默认网站应用程序 (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: AspEnableTracker = " & IIsWebVirtualDirSettingObj.AspEnableTracker
WScript.Echo "        AspAppServiceFlags = " & IIsWebVirtualDirSettingObj.AspAppServiceFlags
’ 设置 ASP 应用程序以启用 COM+ 跟踪
IIsWebVirtualDirSettingObj.AspEnableTracker = 1
IIsWebVirtualDirSettingObj.Put_()
’ 再次获得引用以刷新 AspAppServiceFlags 属性。
set IIsWebVirtualDirSettingObj = Nothing
set IIsWebVirtualDirSettingObj = providerObj.get("IIsWebVirtualDirSetting=’W3SVC/1/ROOT’")
WScript.Echo "After: AspEnableTracker = " & IIsWebVirtualDirSettingObj.AspEnableTracker
WScript.Echo "       AspAppServiceFlags = " & IIsWebVirtualDirSettingObj.AspAppServiceFlags


事务:从 IIS 4.0 版起,ASP 页面中已经支持事务的使用。但是,IIS 更改了事务的内部实现以便利用 COM+ 服务。IIS 不再通过创建 COM 组件来容纳事务,而是直接访问 COM+ 事务服务,因而大大地提高了事务处理的速度。与以前一样,事务只能在页面级别进行配置,配置时使用 @TRANSACTION 指令和 ASP 内置对象的事件,该对象名为 ObjectContext。

ASP 的新配置数据库属性
下面的配置数据库设置已被添加到此版本的 ASP 中。


配置数据库属性名用途

启用诸如 COM+ 并排集合(以前被称为 Fusion)、分区等功能。

指定 ASP 磁盘缓存的位置。

使 ASP 线程能够在多线程单元中执行。

将 ASP 会话 Cookie 安全地发送到浏览器。

指定 ASP 的最大硬盘缓存。

为应用程序指定所使用的 COM+ 分区。

使 ASP 能够以匿名方式运行 global.asa  和  事件。

指定缓冲区大小的限制。

指定 ASP 请求的实体中允许的最大字节数。

允许 ASP 应用程序指定要使用的系统 DLL 或 传统 COM 组件的版本。


0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com