每段都是一个文件,代码如下:
- Imports System
- Imports System.DirectoryServices
- Imports System.Collections
- Namespace OPS.Component
- ' IISWebServer的状态
- Public Enum IISServerState
- Starting = 1
- Started = 2
- Stopping = 3
- Stopped = 4
- Pausing = 5
- Paused = 6
- Continuing = 7
- End Enum
- End Namespace
- Imports System
- Imports System.Collections
- Imports System.Collections.Generic
- Imports System.Text
- Imports System.DirectoryServices
- Namespace OPS.Component
- 'IISWebServer
- Public Class IISWebServer
- Friend index As Integer = -1
- Public WebVirtualDirs As IISWebVirtualDirCollection
- ''' <summary>
- ''' 网站说明
- ''' </summary>
- Public ServerComment As String = "Way"
- ''' <summary>
- ''' 脚本支持
- ''' </summary>
- Public AccessScript As Boolean = True
- ''' <summary>
- ''' 读取
- ''' </summary>
- Public AccessRead As Boolean = True
- ''' <summary>
- ''' 物理路径
- ''' </summary>
- Public Path As String = "c:/"
- ''' <summary>
- ''' 端口
- ''' </summary>
- Public Port As Integer = 80
- ''' <summary>
- ''' 目录浏览
- ''' </summary>
- Public EnableDirBrowsing As Boolean = False
- ''' <summary>
- ''' 默认文档
- ''' </summary>
- Public DefaultDoc As String = "index.aspx"
- ''' <summary>
- ''' 使用默认文档
- ''' </summary>
- Public EnableDefaultDoc As Boolean = True
- ''' <summary>
- ''' IISWebServer的状态
- ''' </summary>
- Public ReadOnly Property ServerState() As IISServerState
- Get
- Dim server As DirectoryEntry = IISManagement.returnIISWebserver(Me.index)
- If server Is Nothing Then
- Throw (New Exception("找不到此IISWebServer"))
- End If
- Select Case server.Properties("ServerState")(0).ToString()
- Case "2"
- Return IISServerState.Started
- Case "4"
- Return IISServerState.Stopped
- Case "6"
- Return IISServerState.Paused
- End Select
- Return IISServerState.Stopped
- End Get
- End Property
- ''' <summary>
- ''' 停止IISWebServer
- ''' </summary>
- Public Sub [Stop]()
- Dim Server As DirectoryEntry
- If index = -1 Then
- Throw (New Exception("在IIS找不到此IISWebServer!"))
- End If
- Try
- Server = New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index)
- If Server IsNot Nothing Then
- Server.Invoke("stop", New Object(-1) {})
- Else
- Throw (New Exception("在IIS找不到此IISWebServer!"))
- End If
- Catch
- Throw (New Exception("在IIS找不到此IISWebServer!"))
- End Try
- End Sub
- ''' <summary>
- ''' 把基本信息的更改更新到IIS
- ''' </summary>
- Public Sub CommitChanges()
- IISManagement.EditIISWebServer(Me)
- End Sub
- ''' <summary>
- ''' 启动IISWebServer
- ''' </summary>
- Public Sub Start()
- If index = -1 Then
- Throw (New Exception("在IIS找不到此IISWebServer!"))
- End If
- Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
- Dim Server As DirectoryEntry
- Dim ie As IEnumerator = Service.Children.GetEnumerator()
- While ie.MoveNext()
- Server = DirectCast(ie.Current, DirectoryEntry)
- If Server.SchemaClassName = "IIsWebServer" Then
- If Server.Properties("Serverbindings")(0).ToString() = ":" + Me.Port + ":" Then
- Server.Invoke("stop", New Object(-1) {})
- End If
- End If
- End While
- Try
- Server = New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index)
- If Server IsNot Nothing Then
- Server.Invoke("start", New Object(-1) {})
- Else
- Throw (New Exception("在IIS找不到此IISWebServer!"))
- End If
- Catch
- Throw (New Exception("在IIS找不到此IISWebServer!"))
- End Try
- End Sub
- Public Sub New()
- WebVirtualDirs = New IISWebVirtualDirCollection(Me)
- End Sub
- End Class
- End Namespace
- Imports System
- Imports System.Collections
- Imports System.Collections.Generic
- Imports System.Text
- Namespace OPS.Component
- ''' <summary>
- ''' IISWebServerCollection
- ''' </summary>
- Public Class IISWebServerCollection
- Inherits CollectionBase
- Default Public ReadOnly Property Item(ByVal Index As Integer) As IISWebServer
- Get
- Return DirectCast(Me.List(Index), IISWebServer)
- End Get
- End Property
- Default Public ReadOnly Property Item(ByVal ServerComment As String)