VB.Net控制IIS的完整源代码

这个博客展示了如何使用VB.Net来控制IIS服务器,包括启动、停止、状态检查以及配置IISWebServer的各种属性。通过`DirectoryEntry`和`DirectoryServices`进行操作,提供了详细的类和方法实现。
摘要由CSDN通过智能技术生成

 每段都是一个文件,代码如下:

  1. Imports System
  2. Imports System.DirectoryServices
  3. Imports System.Collections
  4. Namespace OPS.Component
  5.     ' IISWebServer的状态 
  6.     Public Enum IISServerState
  7.         Starting = 1
  8.         Started = 2
  9.         Stopping = 3
  10.         Stopped = 4
  11.         Pausing = 5
  12.         Paused = 6
  13.         Continuing = 7
  14.     End Enum
  15. End Namespace

 

  1. Imports System
  2. Imports System.Collections
  3. Imports System.Collections.Generic
  4. Imports System.Text
  5. Imports System.DirectoryServices
  6. Namespace OPS.Component
  7.     'IISWebServer 
  8.     Public Class IISWebServer
  9.         Friend index As Integer = -1
  10.         Public WebVirtualDirs As IISWebVirtualDirCollection
  11.         ''' <summary> 
  12.         ''' 网站说明 
  13.         ''' </summary> 
  14.         Public ServerComment As String = "Way"
  15.         ''' <summary> 
  16.         ''' 脚本支持 
  17.         ''' </summary> 
  18.         Public AccessScript As Boolean = True
  19.         ''' <summary> 
  20.         ''' 读取 
  21.         ''' </summary> 
  22.         Public AccessRead As Boolean = True
  23.         ''' <summary> 
  24.         ''' 物理路径 
  25.         ''' </summary> 
  26.         Public Path As String = "c:/"
  27.         ''' <summary> 
  28.         ''' 端口 
  29.         ''' </summary> 
  30.         Public Port As Integer = 80
  31.         ''' <summary> 
  32.         ''' 目录浏览 
  33.         ''' </summary> 
  34.         Public EnableDirBrowsing As Boolean = False
  35.         ''' <summary> 
  36.         ''' 默认文档 
  37.         ''' </summary> 
  38.         Public DefaultDoc As String = "index.aspx"
  39.         ''' <summary> 
  40.         ''' 使用默认文档 
  41.         ''' </summary> 
  42.         Public EnableDefaultDoc As Boolean = True
  43.         ''' <summary> 
  44.         ''' IISWebServer的状态 
  45.         ''' </summary> 
  46.         Public ReadOnly Property ServerState() As IISServerState
  47.             Get
  48.                 Dim server As DirectoryEntry = IISManagement.returnIISWebserver(Me.index)
  49.                 If server Is Nothing Then
  50.                     Throw (New Exception("找不到此IISWebServer"))
  51.                 End If
  52.                 Select Case server.Properties("ServerState")(0).ToString()
  53.                     Case "2"
  54.                         Return IISServerState.Started
  55.                     Case "4"
  56.                         Return IISServerState.Stopped
  57.                     Case "6"
  58.                         Return IISServerState.Paused
  59.                 End Select
  60.                 Return IISServerState.Stopped
  61.             End Get
  62.         End Property
  63.         ''' <summary> 
  64.         ''' 停止IISWebServer 
  65.         ''' </summary> 
  66.         Public Sub [Stop]()
  67.             Dim Server As DirectoryEntry
  68.             If index = -1 Then
  69.                 Throw (New Exception("在IIS找不到此IISWebServer!"))
  70.             End If
  71.             Try
  72.                 Server = New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index)
  73.                 If Server IsNot Nothing Then
  74.                     Server.Invoke("stop"New Object(-1) {})
  75.                 Else
  76.                     Throw (New Exception("在IIS找不到此IISWebServer!"))
  77.                 End If
  78.             Catch
  79.                 Throw (New Exception("在IIS找不到此IISWebServer!"))
  80.             End Try
  81.         End Sub
  82.         ''' <summary> 
  83.         ''' 把基本信息的更改更新到IIS 
  84.         ''' </summary> 
  85.         Public Sub CommitChanges()
  86.             IISManagement.EditIISWebServer(Me)
  87.         End Sub
  88.         ''' <summary> 
  89.         ''' 启动IISWebServer 
  90.         ''' </summary> 
  91.         Public Sub Start()
  92.             If index = -1 Then
  93.                 Throw (New Exception("在IIS找不到此IISWebServer!"))
  94.             End If
  95.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  96.             Dim Server As DirectoryEntry
  97.             Dim ie As IEnumerator = Service.Children.GetEnumerator()
  98.             While ie.MoveNext()
  99.                 Server = DirectCast(ie.Current, DirectoryEntry)
  100.                 If Server.SchemaClassName = "IIsWebServer" Then
  101.                     If Server.Properties("Serverbindings")(0).ToString() = ":" + Me.Port + ":" Then
  102.                         Server.Invoke("stop"New Object(-1) {})
  103.                     End If
  104.                 End If
  105.             End While
  106.             Try
  107.                 Server = New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index)
  108.                 If Server IsNot Nothing Then
  109.                     Server.Invoke("start"New Object(-1) {})
  110.                 Else
  111.                     Throw (New Exception("在IIS找不到此IISWebServer!"))
  112.                 End If
  113.             Catch
  114.                 Throw (New Exception("在IIS找不到此IISWebServer!"))
  115.             End Try
  116.         End Sub
  117.         Public Sub New()
  118.             WebVirtualDirs = New IISWebVirtualDirCollection(Me)
  119.         End Sub
  120.     End Class
  121. End Namespace

 

 

  1. Imports System
  2. Imports System.Collections
  3. Imports System.Collections.Generic
  4. Imports System.Text
  5. Namespace OPS.Component
  6.     ''' <summary> 
  7.     ''' IISWebServerCollection 
  8.     ''' </summary> 
  9.     Public Class IISWebServerCollection
  10.         Inherits CollectionBase
  11.         Default Public ReadOnly Property Item(ByVal Index As IntegerAs IISWebServer
  12.             Get
  13.                 Return DirectCast(Me.List(Index), IISWebServer)
  14.             End Get
  15.         End Property
  16.         Default Public ReadOnly Property Item(ByVal ServerComment As String
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值