我想要在VB程序中建立IIS的虚拟目录,并且指定其本地路径,请问各位大侠,怎么弄

解决方案 »

  1.   

    在实际施工中,经常会牵扯到为客户设置IIS服务器。原理并不复杂,但是实际操作时会很麻烦、繁琐,还要派工程师到现场。可否编程设置IIS服务器呢?我在本文中将稍作探讨,提供的例程很简单,只包括原理实现部分,距离实际工程应用还有很大差距。VB6.0编程设置IIS服务器是通过调用ADSI接口,设置Metabase实现的。
    可在微软网站下载Metabase管理工具,网址如下:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=48364a72-d54e-46dc-aacf-e3be887d17a6&DisplayLang=en安装Metabase管理工具可以验证VB程序对Metabase数据库的更改、设置。
    当然,你用Windows所带的Internet服务管理器也是一样的。打开VB6.0开发环境,新建Exe工程。在工程引用中添加如下动态库。
    Active DS Type Library
    Active DS IIS Extension Dll
    Active DS IIS Namespace ProviderForm1窗体上添加Command1按钮控件,Command1控件事件如下:Private Sub Command1_Click()
    Dim NamespaceObj As New IISNamespace
    Dim ServiceObj As Object
    Dim ServerObj As Object
    Dim VDirObj As ObjectOn Error GoTo ErrLine'Create a new server
    Set ServiceObj = NamespaceObj.GetObject("IIsWebService", "Localhost/W3SVC")
    Set ServerObj = ServiceObj.Create("IIsWebServer", "18")'Next, configure new server
    ServerObj.ServerSize = 1
    ServerObj.ServerComment = "IISTest"
    ServerObj.ServerBindings = ":88:"'Write info back to Metabase
    ServerObj.SetInfo'Create virtual root directory
    Set VDirObj = ServerObj.Create("IIsWebVirtualDir", "ROOT")'Configure new virtual root
    VDirObj.Path = "C:\Inetpub"
    VDirObj.AccessRead = True
    VDirObj.AccessWrite = True
    VDirObj.EnableDirBrowsing = True'Write info back to Metabase
    VDirObj.SetInfo'Start the IIS Server that you recently created
    ServerObj.StartMsgBox "设置成功", , ""
    Exit SubErrLine:
    MsgBox Err.Description, , Err.NumberEnd Sub运行程序,点击Command1按钮(您要具备管理员的权限),程序将创建IISTest服务器,Root目录为C:\Inetpub,端口为88。打开IE浏览器,地址栏中输入http://localhost:88,验证刚才的设置。好了,先讲到这吧。最后,请注意:在实际工程中设置IIS服务器应谨慎,编程语句要严谨,对异常的处理也要考虑全面。再补充两句,也可以通过ASP页面,或Javascript、VBscript脚本实现上述功能。seaneal 2003/6/10
      

  2.   

    private sub form_load()
        Dim ServObj
        Dim VdirObj
        Dim Testpath    On Error GoTo ErrHandle
        
        Set ServObj = GetObject("IIS://LocalHost/w3svc/1/Root")
        If (Err <> 0) Then
            MsgBox ("GetObject (""IIS://LocalHost/w3svc/1/Root"") Failed!")
            Exit Sub
        End If    Set VdirObj = ServObj.Create("IIsWebVirtualDir", "MyVdir")
        VdirObj.SetInfo
        If (Err <> 0) Then
            MsgBox ("CreateObject (""IIS://LocalHost/w3svc/1/Root/MyVdir"") Failed!")
        End If    VdirObj.AccessRead = True
        VdirObj.AccessScript = True
        VdirObj.EnableDirBrowsing = True
        Testpath = "C:\Temp"
        VdirObj.Put "Path", (Testpath)    VdirObj.SetInfo
        
        If (Err <> 0) Then
            MsgBox ("Put (""Path"") Failed!")
        End If
        
        MsgBox ("Create virtual directory is successful.")
        
        Exit Sub
        
    ErrHandle:
        MsgBox Err.Description
    end sub
      

  3.   

    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 Command1_Click()
    Call WebVirtualDir("aa", "aa", "E:\Web", "Default.asp")
    End Sub