如何编程控制IIS的设置,请指教!用VC++,或VB

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1460/1460500.xml?temp=.2677729
      

  2.   

    谢谢楼上的。请问用VB,或 delphi如何做,请指教!谢了先!
      

  3.   

    http://seesi.51.net/article/adsiiis.htm
    下面一个例子是使用VB创建一个Web站点的示例。多站点只能在NT Server上面创建,NT工作站或者Win2k Profession不支持创建多站点。'============================
    ' CreateWebSit 参数说明
    ' WWWSiteName 要建立的新站点的描述(也可以教名字)
    ' WWWTCPPort 要新站点的TCP端口
    ' WWWFilesPath 新站点的主目录路径
    ' ComputerName 需要在那台机器上建立虚拟站点,本机可以使用localhost
    '===========================Function CreateWebSit(ByVal WWWSiteName As String, _
    ByVal WWWTCPPort As String, _
    ByVal WWWFilesPath As String, _
    ByVal ComputerName As String) As BooleanCreateWebSit = True
    Dim TCPPort() As Variant
    '建立活动桌面'(IADS)对象。首先要在 VB 中的 'prject'菜单中的'references'中引'用 Active DS 'Type 'library 组件
    Dim WWWServer As IADs, WWWService As IADs, WWWVdir, WWWVdirRes As IADs
    Dim I As Integer
    Dim HandleSameCase As Boolean
    '取得W3SVC服务
    Set WWWService = GetObject("IIS://" & ComputerName & "/W3SVC")
    I = 1
    HandleSameCase = True
    On Error GoTo ErrWouldDo
    '在IIS中查找每一个WEB站点
    For Each WWWServer In WWWService
    Set WWWServer = Nothing
    Set WWWServer = GetObject("IIS://" & ComputerName & "/W3SVC/" & I)
    Debug.Print WWWServer.ServerComment
    '如果在安装时系统中已经有了要加的站点,则要先删除干净
    If UCase(WWWServer.ServerComment) = UCase(WWWSiteName) Then
    WWWService.Delete "IISWebServer", I '再删除
    Exit For
    End If
    ReDim TCPPort(1)
    TCPPort(0) = ""
    TCPPort = WWWServer.Serverbindings
    '如果端口已经有了则也要先删除
    If TCPPort(0) = ":" & WWWTCPPort & ":" Then
    WWWService.Delete "IISWebServer", I '删除
    Else
    I = I + 1
    End If
    Next
    HandleSameCase = False
    CreateSite:
    'MsgBox I
    Set WWWServer = WWWService.Create("IISWebServer", I) '创建新站点
    WWWServer.ServerComment = WWWSiteName '设置站点名
    WWWServer.Serverbindings = ":" & WWWTCPPort & ":" '设置端口号
    WWWServer.DefaultDoc = "default.asp,index.asp,default.htm,index.htm" '设置默认启动文件
    WWWServer.AccessScript = True '设置权限
    WWWServer.AccessRead = True
    WWWServer.SetInfo'创建设置主目录
    Set WWWServer = GetObject("IIS://" & ComputerName & "/W3SVC/" & I)
    Set WWWVdir = WWWServer.Create("IISWebVirtualDir", "root")
    WWWVdir.Path = WWWFilesPath '主目录的实际磁盘路径
    WWWVdir.SetInfo
    WWWVdir.AppCreate True
    WWWServer.Start '启动新站点Set WWWVdirRes = WWWVdir.Create("IISWebVirtualDir", "Resource") '创建虚拟目录
    WWWVdirRes.Path = WWWFilesPath + "\Resource"
    WWWVdirRes.AccessRead = True
    WWWVdirRes.AccessWrite = True
    WWWVdirRes.SetInfo'下面为自定义IIS Web Server的错误信息,等发生404错误时候指定调用网站主目录下的404.htm页面显示WWWServer.HttpErrors = "404,0,FILE," + WWWFilesPath + "\404.htm"
    WWWServer.SetInfoCreateWebSit = TrueExit Function
    ErrWouldDo:
    'MsgBox Err.Description
    If (HandleSameCase = True) Then
    GoTo CreateSite
    Else
    MsgBox Err.Description
    CreateWebSit = False
    Exit Function
    End If
    End Function  例如要在本机上使用9000端口创建一个名字(描述)为MySite的站点,并且把C:\C:\MyWebRoot设定为网站的主目录,可以这样调用:
    CreateWebSit "MySite", "9000", "C:\MyWebRoot", "localhost"
      上面这个VB的例子,说明了在VB中使用ADSI的基本步骤与属性(属性的数据类型包括了String,List,Boolean的设置)。关于更多的IIS的属性,请参考MSDN ADSI专题(建议使用新版本的MSDN,其实我的也不新--2000 oct版)