如何编程控制IIS的设置,请指教!用VC++,或VB
解决方案 »
- 怎么使用CDC类绘点图-VC++6.0
- 关于 LRESULT CALLBACK KeyboardProc的参数疑问?
- 绑定两个table时如何往其中一个table加记录
- VS2003下的多线程程序,在Release下可以执行,但在Debug下不能执行,是什么原因?
- 端口映射:求一个例子程序(100分相送!!!)
- 模板函数是不是这么导出的
- 用m_pRecordset打开表的数据集应该放在哪里?十万火急!请高手指点!谢了先!在线等!
- 关于CFrameWnd的问题
- 在对话框中,如何显示位图??
- 我用的是DataGrid和ADOCtrl控件显示数据库,可是无法刷新,必须关闭再打开才可以,请问用哪个函数?
- 关于多文档中使用FormView的问题
- 怎样使得BITMAP或其他格式文件作为单/多文档程序背景?
下面一个例子是使用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版)