首页 > 网站 > IIS > 正文

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

2024-08-29 03:09:33
字体:
来源:转载
供稿:网友
下列示例设置默认网站应用程序 (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 版本,在卸载这些应用程序之前,其他应用程序只能被迫使用该版本。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表