IIS6.0下ASP的新增功能(二)_Web服務器教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
下列示例設置默認網站應用程序 (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">
。糰ssemblyIdentity 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 版本,在卸載這些應用程序之前,其他應用程序只能被迫使用該版本。
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">
。糰ssemblyIdentity 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 版本,在卸載這些應用程序之前,其他應用程序只能被迫使用該版本。
相關Web服務器教程:
- 相關鏈接:
- 教程說明:
Web服務器教程-IIS6.0下ASP的新增功能(二)
。