参考以下 Public Function WebVirtualDir(ByVal strWebSite As String, ByVal strFriendlyName As String, ByVal strWebPath As String, ByVal strDefaultDoc As String) As Boolean Dim objADSI As Object Dim objWebVDir As Object On Error GoTo Lib_Err Set objADSI = GetObject("IIS://LocalHost/W3SVC/1/Root") Set objWebVDir = objADSI.Create("IIsWebVirtualDir", strWebSite) objWebVDir.SetInfo Set objWebVDir = objADSI.GetObject("IIsWebVirtualDir", strWebSite) objWebVDir.AppCreate True objWebVDir.Put "AppFriendlyName", strFriendlyName objWebVDir.Put "AppRoot", "/LM/W3SVC/1/Root/" & strWebSite objWebVDir.Put "Path", strWebPath objWebVDir.Put "AppIsolated", 0 objWebVDir.Put "DefaultDoc", strDefaultDoc objWebVDir.Put "AccessFlags", 535 objWebVDir.SetInfo WebVirtualDir = True Lib_End: Set objWebVDir = Nothing Set objADSI = Nothing Exit Function Lib_Err: WebVirtualDir = False strError = Err.Description Err.Clear Resume Lib_End End FunctionPrivate Sub Command2_Click() Call WebVirtualDir("aa", "aa", "E:\", "Default.asp") End Sub
在TEST.ASP文件中过行如下程序: <% Dim ASPObj,cvalue Set ASPObj = Server.CreateObject("nuofei.iisctrl") cvalue=ASPObj.WebVirtualDir("test", "aa", "E:\", "Default.asp") set ASPObj = Nothing %>提示错误如下:nuofei 错误 '800a005b' 未设置对象变量或 With block 变量
参见http://msdn.microsoft.com/library/en-us/iissdk/iis/iis_programmatic_administration_start_page.asp?frame=true 有二种方法:WMI 和 ADSIADSI法代码示例: Private Sub Command1_Click() ' Create an instance of the virtual directory object ' that represents the default Web site. Set IIsWebVDirRootObj = GetObject("IIS://localhost/W3SVC/1/Root")' Use the Windows ADSI container object "Create" method to create ' a new virtual directory. Set IIsWebVDirObj = IIsWebVDirRootObj.Create("IIsWebVirtualDir", "NewVDir")' Use the Windows ADSI object "Put" method to ' set some required properties. IIsWebVDirObj.Put "Path", "C:\NewContent" IIsWebVDirObj.Put "AccessRead", True IIsWebVDirObj.Put "AccessScript", True' Use the AppCreate2 method of the IIS ADSI provider to ' create an application on the new virtual directory. IIsWebVDirObj.AppCreate2 1 IIsWebVDirObj.Put "AppFriendlyName", "NewApp"' Use the Windows ADSI object "SetInfo" method to ' save the data to the metabase. IIsWebVDirObj.SetInfo End Sub
Public Function WebVirtualDir(ByVal strWebSite As String, ByVal strFriendlyName As String, ByVal strWebPath As String, ByVal strDefaultDoc As String) As Boolean
Dim objADSI As Object
Dim objWebVDir As Object
On Error GoTo Lib_Err
Set objADSI = GetObject("IIS://LocalHost/W3SVC/1/Root")
Set objWebVDir = objADSI.Create("IIsWebVirtualDir", strWebSite)
objWebVDir.SetInfo
Set objWebVDir = objADSI.GetObject("IIsWebVirtualDir", strWebSite)
objWebVDir.AppCreate True
objWebVDir.Put "AppFriendlyName", strFriendlyName
objWebVDir.Put "AppRoot", "/LM/W3SVC/1/Root/" & strWebSite
objWebVDir.Put "Path", strWebPath
objWebVDir.Put "AppIsolated", 0
objWebVDir.Put "DefaultDoc", strDefaultDoc
objWebVDir.Put "AccessFlags", 535
objWebVDir.SetInfo
WebVirtualDir = True
Lib_End:
Set objWebVDir = Nothing
Set objADSI = Nothing
Exit Function
Lib_Err:
WebVirtualDir = False
strError = Err.Description
Err.Clear
Resume Lib_End
End FunctionPrivate Sub Command2_Click()
Call WebVirtualDir("aa", "aa", "E:\", "Default.asp")
End Sub
<%
Dim ASPObj,cvalue Set ASPObj = Server.CreateObject("nuofei.iisctrl")
cvalue=ASPObj.WebVirtualDir("test", "aa", "E:\", "Default.asp")
set ASPObj = Nothing
%>提示错误如下:nuofei 错误 '800a005b' 未设置对象变量或 With block 变量
有二种方法:WMI 和 ADSIADSI法代码示例:
Private Sub Command1_Click()
' Create an instance of the virtual directory object
' that represents the default Web site.
Set IIsWebVDirRootObj = GetObject("IIS://localhost/W3SVC/1/Root")' Use the Windows ADSI container object "Create" method to create
' a new virtual directory.
Set IIsWebVDirObj = IIsWebVDirRootObj.Create("IIsWebVirtualDir", "NewVDir")' Use the Windows ADSI object "Put" method to
' set some required properties.
IIsWebVDirObj.Put "Path", "C:\NewContent"
IIsWebVDirObj.Put "AccessRead", True
IIsWebVDirObj.Put "AccessScript", True' Use the AppCreate2 method of the IIS ADSI provider to
' create an application on the new virtual directory.
IIsWebVDirObj.AppCreate2 1
IIsWebVDirObj.Put "AppFriendlyName", "NewApp"' Use the Windows ADSI object "SetInfo" method to
' save the data to the metabase.
IIsWebVDirObj.SetInfo
End Sub