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

2008-02-23 08:21:44来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

下列示例配置默认网站应用程式 (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 版本,在卸载这些应用程式之前,其他应用程式只能被迫使用该版本。