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

vb.net与C#混用解决方案 所为混用不是为了能够在一个代码文件中同时书写C#和vb.net语句 而是可以在一个程序中发挥两种语言不同的优势 或者说 更容易发挥码农对不同语言的理解和长处 C/S 下的混合调用不会有任何阻碍 假如你的主项目是vb.net 但是你突然想使用一个C#语法才有的特性 或者写某些语句的时候使用C#更得心应手 简单的在解决方案下创建一个C#的dll项目 代码敲进去 然后被vb.net项目引用就好 阅读详情

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

  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 Integer) As 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) As IISWebServer
  17.             Get
  18.                 ServerComment = ServerComment.ToLower().Trim()
  19.                 Dim list As IISWebServer
  20.                 For i As Integer = 0 To Me.List.Count - 1
  21.                     list = DirectCast(Me.List(i), IISWebServer)
  22.                     If list.ServerComment.ToLower().Trim() = ServerComment Then
  23.                         Return list
  24.                     End If
  25.                 Next
  26.                 Return Nothing
  27.             End Get
  28.         End Property
  29.         Friend Sub Add_(ByVal WebServer As IISWebServer)
  30.             Me.List.Add(WebServer)
  31.         End Sub
  32.         Public Sub Add(ByVal WebServer As IISWebServer)
  33.             Try
  34.                 Me.List.Add(WebServer)
  35.                 IISManagement.CreateIISWebServer(WebServer)
  36.             Catch
  37.                 Throw (New Exception("发生意外错误,可能是某节点将该节点的上级节点作为它自己的子级插入"))
  38.             End Try
  39.         End Sub
  40.         ''' <summary> 
  41.         ''' 是否包含指定的网站 
  42.         ''' </summary> 
  43.         ''' <param name="ServerComment"></param> 
  44.         ''' <returns></returns> 
  45.         Public Function Contains(ByVal ServerComment As String) As Boolean
  46.             ServerComment = ServerComment.ToLower().Trim()
  47.             For i As Integer = 0 To Me.List.Count - 1
  48.                 Dim server As IISWebServer = Me(i)
  49.                 If server.ServerComment.ToLower().Trim() = ServerComment Then
  50.                     Return True
  51.                 End If
  52.             Next
  53.             Return False
  54.         End Function
  55.         ''' <summary> 
  56.         ''' 是否包含指定的网站 
  57.         ''' </summary> 
  58.         ''' <param name="index"></param> 
  59.         ''' <returns></returns> 
  60.         Public Function Contains(ByVal index As Integer) As Boolean
  61.             For i As Integer = 0 To Me.List.Count - 1
  62.                 Dim server As IISWebServer = Me(i)
  63.                 If server.index = index Then
  64.                     Return True
  65.                 End If
  66.             Next
  67.             Return False
  68.         End Function
  69.         Public Sub AddRange(ByVal WebServers As IISWebServer())
  70.             For i As Integer = 0 To WebServers.GetUpperBound(0)
  71.                 Add(WebServers(i))
  72.             Next
  73.         End Sub
  74.         Public Sub Remove(ByVal WebServer As IISWebServer)
  75.             For i As Integer = 0 To Me.List.Count - 1
  76.                 If DirectCast(Me.List(i), IISWebServer) = WebServer Then
  77.                     Me.List.RemoveAt(i)
  78.                     Return
  79.                 End If
  80.             Next
  81.             IISManagement.RemoveIISWebServer(WebServer.index)
  82.         End Sub
  83.     End Class
  84. End Namespace

 

 

  1. Imports System
  2. Imports System.Collections.Generic
  3. Imports System.Text
  4. Namespace OPS.Component
  5.     ''' <summary> 
  6.     ''' IISWebVirtualDir 
  7.     ''' </summary> 
  8.     Public Class IISWebVirtualDir
  9.         Public Parent As IISWebServer = Nothing
  10.         ''' <summary> 
  11.         ''' 虚拟目录名称 
  12.         ''' </summary> 
  13.         Public Name As String = "Way"
  14.         ''' <summary> 
  15.         ''' 读取 
  16.         ''' </summary> 
  17.         Public AccessRead As Boolean = True
  18.         ''' <summary> 
  19.         ''' 脚本支持 
  20.         ''' </summary> 
  21.         Public AccessScript As Boolean = True
  22.         ''' <summary> 
  23.         ''' 物理路径 
  24.         ''' </summary> 
  25.         Public Path As String = "c:/"
  26.         ''' <summary> 
  27.         ''' 默认文档 
  28.         ''' </summary> 
  29.         Public DefaultDoc As String = "index.aspx"
  30.         ''' <summary> 
  31.         ''' 使用默认文档 
  32.         ''' </summary> 
  33.         Public EnableDefaultDoc As Boolean = True
  34.         ''' <summary> 
  35.         ''' 所属的网站的网站说明 
  36.         ''' </summary> 
  37.         Public WebServer As String = ""
  38.         Public Sub New(ByVal WebServerName As String)
  39.             If WebServerName.ToString() = "" Then
  40.                 Throw (New Exception("WebServerName不能为空!"))
  41.             End If
  42.             Me.WebServer = WebServerName
  43.         End Sub
  44.         Public Sub New()
  45.         End Sub
  46.     End Class
  47. 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.     ''' IISWebVirtualDirCollection 
  8.     ''' </summary> 
  9.     Public Class IISWebVirtualDirCollection
  10.         Inherits CollectionBase
  11.         Public Parent As IISWebServer = Nothing
  12.         Default Public ReadOnly Property Item(ByVal Index As Integer) As IISWebVirtualDir
  13.             Get
  14.                 Return DirectCast(Me.List(Index), IISWebVirtualDir)
  15.             End Get
  16.         End Property
  17.         Default Public ReadOnly Property Item(ByVal Name As String) As IISWebVirtualDir
  18.             Get
  19.                 Name = Name.ToLower()
  20.                 Dim list As IISWebVirtualDir
  21.                 For i As Integer = 0 To Me.List.Count - 1
  22.                     list = DirectCast(Me.List(i), IISWebVirtualDir)
  23.                     If list.Name.ToLower() = Name Then
  24.                         Return list
  25.                     End If
  26.                 Next
  27.                 Return Nothing
  28.             End Get
  29.         End Property
  30.         Friend Sub Add_(ByVal WebVirtualDir As IISWebVirtualDir)
  31.             Try
  32.                 Me.List.Add(WebVirtualDir)
  33.             Catch
  34.                 Throw (New Exception("发生意外错误,可能是某节点将该节点的上级节点作为它自己的子级插入"))
  35.             End Try
  36.         End Sub
  37.         Public Sub Add(ByVal WebVirtualDir As IISWebVirtualDir)
  38.             WebVirtualDir.Parent = Me.Parent
  39.             Try
  40.                 Me.List.Add(WebVirtualDir)
  41.             Catch
  42.                 Throw (New Exception("发生意外错误,可能是某节点将该节点的上级节点作为它自己的子级插入"))
  43.             End Try
  44.             IISManagement.CreateIISWebVirtualDir(WebVirtualDir, True)
  45.         End Sub
  46.         Public Sub AddRange(ByVal WebVirtualDirs As IISWebVirtualDir())
  47.             For i As Integer = 0 To WebVirtualDirs.GetUpperBound(0)
  48.                 Add(WebVirtualDirs(i))
  49.             Next
  50.         End Sub
  51.         Public Sub Remove(ByVal WebVirtualDir As IISWebVirtualDir)
  52.             For i As Integer = 0 To Me.List.Count - 1
  53.                 If DirectCast(Me.List(i), IISWebVirtualDir) = WebVirtualDir Then
  54.                     Me.List.RemoveAt(i)
  55.                     IISManagement.RemoveIISWebVirtualDir(WebVirtualDir)
  56.                     Return
  57.                 End If
  58.             Next
  59.         End Sub
  60.         Public Sub New(ByVal Parent As IISWebServer)
  61.             Me.Parent = Parent
  62.         End Sub
  63.     End Class
  64. 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.     ''' <summary> 
  8.     ''' IISManagement 的摘要说明。
  9.     ''' </summary> 
  10.     Public Class IISManagement
  11.         Public WebServers As New IISWebServerCollection()
  12.         Friend Shared Machinename As String = "localhost"
  13.         Public Sub New()
  14.             start()
  15.         End Sub
  16.         ''' <param name="MachineName">机器名,默认值为localhost</param> 
  17.         Public Sub New(ByVal MachineName__1 As String)
  18.             If MachineName__1.ToString() <> "" Then
  19.                 Machinename = MachineName__1
  20.             End If
  21.             start()
  22.         End Sub
  23.         Private Sub start()
  24.             Dim Service As New DirectoryEntry("IIS://" + Machinename + "/W3SVC")
  25.             Dim Server As DirectoryEntry
  26.             Dim Root As DirectoryEntry = Nothing
  27.             Dim VirDir As DirectoryEntry
  28.             Dim ie As IEnumerator = Service.Children.GetEnumerator()
  29.             Dim ieRoot As IEnumerator
  30.             Dim item As IISWebServer
  31.             Dim item_virdir As IISWebVirtualDir
  32.             Dim finded As Boolean = False
  33.             While ie.MoveNext()
  34.                 Server = DirectCast(ie.Current, DirectoryEntry)
  35.                 If Server.SchemaClassName = "IIsWebServer" Then
  36.                     item = New IISWebServer()
  37.                     item.index = Convert.ToInt32(Server.Name)
  38.                     item.ServerComment = DirectCast(Server.Properties("ServerComment")(0), String)
  39.                     item.AccessRead = CBool(Server.Properties("AccessRead")(0))
  40.                     item.AccessScript = CBool(Server.Properties("AccessScript")(0))
  41.                     item.DefaultDoc = DirectCast(Server.Properties("DefaultDoc")(0), String)
  42.                     item.EnableDefaultDoc = CBool(Server.Properties("EnableDefaultDoc")(0))
  43.                     item.EnableDirBrowsing = CBool(Server.Properties("EnableDirBrowsing")(0))
  44.                     ieRoot = Server.Children.GetEnumerator()
  45.                     While ieRoot.MoveNext()
  46.                         Root = DirectCast(ieRoot.Current, DirectoryEntry)
  47.                         If Root.SchemaClassName = "IIsWebVirtualDir" Then
  48.                             finded = True
  49.                             Exit While
  50.                         End If
  51.                     End While
  52.                     If finded Then
  53.                         item.Path = Root.Properties("path")(0).ToString()
  54.                     End If
  55.                     item.Port = Convert.ToInt32(DirectCast(Server.Properties("Serverbindings")(0), String).Substring(1, (DirectCast(Server.Properties("Serverbindings")(0), String)).Length - 2))
  56.                     Me.WebServers.Add_(item)
  57.                     ieRoot = Root.Children.GetEnumerator()
  58.                     While ieRoot.MoveNext()
  59.                         VirDir = DirectCast(ieRoot.Current, DirectoryEntry)
  60.                         If VirDir.SchemaClassName <> "IIsWebVirtualDir" AndAlso VirDir.SchemaClassName <> "IIsWebDirectory" Then
  61.                             Continue While
  62.                         End If
  63.                         item_virdir = New IISWebVirtualDir(item.ServerComment)
  64.                         item_virdir.Name = VirDir.Name
  65.                         item_virdir.AccessRead = CBool(VirDir.Properties("AccessRead")(0))
  66.                         item_virdir.AccessScript = CBool(VirDir.Properties("AccessScript")(0))
  67.                         item_virdir.DefaultDoc = DirectCast(VirDir.Properties("DefaultDoc")(0), String)
  68.                         item_virdir.EnableDefaultDoc = CBool(VirDir.Properties("EnableDefaultDoc")(0))
  69.                         If VirDir.SchemaClassName = "IIsWebVirtualDir" Then
  70.                             item_virdir.Path = DirectCast(VirDir.Properties("Path")(0), String)
  71.                         ElseIf VirDir.SchemaClassName = "IIsWebDirectory" Then
  72.                             item_virdir.Path = Root.Properties("Path")(0) + "/" + VirDir.Name
  73.                         End If
  74.                         item.WebVirtualDirs.Add_(item_virdir)
  75.                     End While
  76.                 End If
  77.             End While
  78.         End Sub
  79.         ''' <summary> 
  80.         ''' 创建站点
  81.         ''' </summary> 
  82.         ''' <param name="iisServer"></param> 
  83.         Public Shared Sub CreateIISWebServer(ByVal iisServer As IISWebServer)
  84.             If iisServer.ServerComment.ToString() = "" Then
  85.                 Throw (New Exception("IISWebServer的ServerComment不能为空!"))
  86.             End If
  87.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  88.             Dim Server As DirectoryEntry
  89.             Dim i As Integer = 0
  90.             Dim ie As IEnumerator = Service.Children.GetEnumerator()
  91.             While ie.MoveNext()
  92.                 Server = DirectCast(ie.Current, DirectoryEntry)
  93.                 If Server.SchemaClassName = "IIsWebServer" Then
  94.                     If Convert.ToInt32(Server.Name) > i Then
  95.                         i = Convert.ToInt32(Server.Name)
  96.                     End If
  97.                 End If
  98.             End While
  99.             i += 1
  100.             Try
  101.                 iisServer.index = i
  102.                 Server = Service.Children.Add(i.ToString(), "IIsWebServer")
  103.                 Server.Properties("ServerComment")(0) = iisServer.ServerComment
  104.                 Server.Properties("Serverbindings").Add(":" + iisServer.Port + ":")
  105.                 Server.Properties("AccessScript")(0) = iisServer.AccessScript
  106.                 Server.Properties("AccessRead")(0) = iisServer.AccessRead
  107.                 Server.Properties("EnableDirBrowsing")(0) = iisServer.EnableDirBrowsing
  108.                 Server.Properties("DefaultDoc")(0) = iisServer.DefaultDoc
  109.                 Server.Properties("EnableDefaultDoc")(0) = iisServer.EnableDefaultDoc
  110.                 Dim root As DirectoryEntry = Server.Children.Add("Root", "IIsWebVirtualDir")
  111.                 root.Properties("path")(0) = iisServer.Path
  112.                 Service.CommitChanges()
  113.                 Server.CommitChanges()
  114.                 root.CommitChanges()
  115.                 root.Invoke("AppCreate2", New Object(0) {2})
  116.                 'Server.Invoke("start",new object[0]); 
  117.             Catch es As Exception
  118.                 Throw (es)
  119.             End Try
  120.         End Sub
  121.         ''' <summary> 
  122.         ''' 删除IISWebServer 
  123.         ''' </summary> 
  124.         Public Shared Sub RemoveIISWebServer(ByVal ServerComment As String)
  125.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  126.             Dim Server As DirectoryEntry
  127.             Dim ie As IEnumerator = Service.Children.GetEnumerator()
  128.             ServerComment = ServerComment.ToLower()
  129.             While ie.MoveNext()
  130.                 Server = DirectCast(ie.Current, DirectoryEntry)
  131.                 If Server.SchemaClassName = "IIsWebServer" Then
  132.                     If Server.Properties("ServerComment")(0).ToString().ToLower() = ServerComment Then
  133.                         Service.Children.Remove(Server)
  134.                         Service.CommitChanges()
  135.                         Return
  136.                     End If
  137.                 End If
  138.             End While
  139.         End Sub
  140.         ''' <summary> 
  141.         ''' 删除IISWebServer 
  142.         ''' </summary> 
  143.         Public Shared Sub RemoveIISWebServer(ByVal index As Integer)
  144.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  145.             Try
  146.                 Dim Server As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index)
  147.                 If Server IsNot Nothing Then
  148.                     Service.Children.Remove(Server)
  149.                     Service.CommitChanges()
  150.                 Else
  151.                     Throw (New Exception("找不到此IISWebServer"))
  152.                 End If
  153.             Catch
  154.                 Throw (New Exception("找不到此IISWebServer"))
  155.             End Try
  156.         End Sub
  157.         ''' <summary> 
  158.         ''' 检查是否存在IISWebServer 
  159.         ''' </summary> 
  160.         ''' <param name="ServerComment">网站说明</param> 
  161.         ''' <returns></returns> 
  162.         Public Shared Function ExistsIISWebServer(ByVal ServerComment As String) As Boolean
  163.             ServerComment = ServerComment.Trim()
  164.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  165.             Dim Server As DirectoryEntry = Nothing
  166.             Dim ie As IEnumerator = Service.Children.GetEnumerator()
  167.             Dim comment As String
  168.             While ie.MoveNext()
  169.                 Server = DirectCast(ie.Current, DirectoryEntry)
  170.                 If Server.SchemaClassName = "IIsWebServer" Then
  171.                     comment = Server.Properties("ServerComment")(0).ToString().ToLower().Trim()
  172.                     If comment = ServerComment.ToLower() Then
  173.                         Return True
  174.                     End If
  175.                 End If
  176.             End While
  177.             Return False
  178.         End Function
  179.         ''' <summary> 
  180.         ''' 返回指定的IISWebServer 
  181.         ''' </summary> 
  182.         ''' <param name="ServerComment"></param> 
  183.         ''' <returns></returns> 
  184.         Friend Shared Function returnIISWebserver(ByVal ServerComment As String) As DirectoryEntry
  185.             ServerComment = ServerComment.Trim()
  186.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  187.             Dim Server As DirectoryEntry = Nothing
  188.             Dim ie As IEnumerator = Service.Children.GetEnumerator()
  189.             Dim comment As String
  190.             While ie.MoveNext()
  191.                 Server = DirectCast(ie.Current, DirectoryEntry)
  192.                 If Server.SchemaClassName = "IIsWebServer" Then
  193.                     comment = Server.Properties("ServerComment")(0).ToString().ToLower().Trim()
  194.                     If comment = ServerComment.ToLower() Then
  195.                         Return Server
  196.                     End If
  197.                 End If
  198.             End While
  199.             Return Nothing
  200.         End Function
  201.         ''' <summary> 
  202.         ''' 返回指定的IISWebServer 
  203.         ''' </summary> 
  204.         ''' <param name="index"></param> 
  205.         ''' <returns></returns> 
  206.         Friend Shared Function returnIISWebserver(ByVal index As Integer) As DirectoryEntry
  207.             Dim Server As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC/" + index)
  208.             Try
  209.                 Dim ie As IEnumerator = Server.Children.GetEnumerator()
  210.                 Return Server
  211.             Catch
  212.                 Return Nothing
  213.             End Try
  214.         End Function
  215.         Private Shared Function getRoot(ByVal Server As DirectoryEntry) As DirectoryEntry
  216.             For Each child As DirectoryEntry In Server.Children
  217.                 Dim name As String = child.Name.ToLower()
  218.                 If name = "iiswebvirtualdir" OrElse name = "root" Then
  219.                     Return child
  220.                 End If
  221.             Next
  222.             Return Nothing
  223.         End Function
  224.         ''' <summary> 
  225.         ''' 修改与给定的IISWebServer具有相同网站说明的站点配置
  226.         ''' </summary> 
  227.         ''' <param name="iisServer">给定的IISWebServer</param> 
  228.         Public Shared Sub EditIISWebServer(ByVal iisServer As IISWebServer)
  229.             If iisServer.index = -1 Then
  230.                 Throw (New Exception("找不到给定的站点!"))
  231.             End If
  232.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  233.             Dim Server As DirectoryEntry
  234.             Dim ie As IEnumerator = Service.Children.GetEnumerator()
  235.             While ie.MoveNext()
  236.                 Server = DirectCast(ie.Current, DirectoryEntry)
  237.                 If Server.SchemaClassName = "IIsWebServer" Then
  238.                     If Server.Properties("Serverbindings")(0).ToString() = ":" + iisServer.Port + ":" Then
  239.                         Server.Invoke("stop", New Object(-1) {})
  240.                     End If
  241.                 End If
  242.             End While
  243.             Server = returnIISWebserver(iisServer.index)
  244.             If Server Is Nothing Then
  245.                 Throw (New Exception("找不到给定的站点!"))
  246.             End If
  247.             Try
  248.                 Server.Properties("ServerComment")(0) = iisServer.ServerComment
  249.                 Server.Properties("Serverbindings")(0) = ":" + iisServer.Port + ":"
  250.                 Server.Properties("AccessScript")(0) = iisServer.AccessScript
  251.                 Server.Properties("AccessRead")(0) = iisServer.AccessRead
  252.                 Server.Properties("EnableDirBrowsing")(0) = iisServer.EnableDirBrowsing
  253.                 Server.Properties("DefaultDoc")(0) = iisServer.DefaultDoc
  254.                 Server.Properties("EnableDefaultDoc")(0) = iisServer.EnableDefaultDoc
  255.                 Dim root As DirectoryEntry = getRoot(Server)
  256.                 Server.CommitChanges()
  257.                 If root IsNot Nothing Then
  258.                     root.Properties("path")(0) = iisServer.Path
  259.                     root.CommitChanges()
  260.                 End If
  261.                 Server.Invoke("start", New Object(-1) {})
  262.             Catch es As Exception
  263.                 Throw (es)
  264.             End Try
  265.         End Sub
  266.         ''' <summary> 
  267.         ''' 返回所有站点的网站说明
  268.         ''' </summary> 
  269.         ''' <returns></returns> 
  270.         Public Shared Function returnIISServerComment() As ArrayList
  271.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  272.             Dim Server As DirectoryEntry
  273.             Dim list As New ArrayList()
  274.             Dim ie As IEnumerator = Service.Children.GetEnumerator()
  275.             While ie.MoveNext()
  276.                 Server = DirectCast(ie.Current, DirectoryEntry)
  277.                 If Server.SchemaClassName = "IIsWebServer" Then
  278.                     list.Add(Server.Properties("ServerComment")(0))
  279.                 End If
  280.             End While
  281.             Return list
  282.         End Function
  283.         ''' <summary> 
  284.         ''' 创建虚拟目录
  285.         ''' </summary> 
  286.         ''' <param name="iisVir"></param> 
  287.         ''' <param name="deleteIfExist"></param> 
  288.         Public Shared Sub CreateIISWebVirtualDir(ByVal iisVir As IISWebVirtualDir, ByVal deleteIfExist As Boolean)
  289.             If iisVir.Parent Is Nothing Then
  290.                 Throw (New Exception("IISWebVirtualDir没有所属的IISWebServer!"))
  291.             End If
  292.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  293.             Dim Server As DirectoryEntry = returnIISWebserver(iisVir.Parent.index)
  294.             If Server Is Nothing Then
  295.                 Throw (New Exception("找不到给定的站点!"))
  296.             End If
  297.             Server = getRoot(Server)
  298.             If deleteIfExist Then
  299.                 For Each VirDir As DirectoryEntry In Server.Children
  300.                     If VirDir.Name.ToLower().Trim() = iisVir.Name.ToLower() Then
  301.                         Server.Children.Remove(VirDir)
  302.                         Server.CommitChanges()
  303.                         Exit For
  304.                     End If
  305.                 Next
  306.             End If
  307.             Try
  308.                 Dim vir As DirectoryEntry
  309.                 vir = Server.Children.Add(iisVir.Name, "IIsWebVirtualDir")
  310.                 vir.Properties("Path")(0) = iisVir.Path
  311.                 vir.Properties("DefaultDoc")(0) = iisVir.DefaultDoc
  312.                 vir.Properties("EnableDefaultDoc")(0) = iisVir.EnableDefaultDoc
  313.                 vir.Properties("AccessScript")(0) = iisVir.AccessScript
  314.                 vir.Properties("AccessRead")(0) = iisVir.AccessRead
  315.                 vir.Invoke("AppCreate2", New Object(0) {2})
  316.                 Server.CommitChanges()
  317.                 vir.CommitChanges()
  318.             Catch es As Exception
  319.                 Throw (es)
  320.             End Try
  321.         End Sub
  322.         ''' <summary> 
  323.         ''' 删除虚拟目录
  324.         ''' </summary> 
  325.         ''' <param name="WebServerComment">站点说明</param> 
  326.         ''' <param name="VirtualDir">虚拟目录名称</param> 
  327.         Public Shared Sub RemoveIISWebVirtualDir(ByVal WebServerComment As String, ByVal VirtualDir As String)
  328.             VirtualDir = VirtualDir.ToLower()
  329.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  330.             Dim Server As DirectoryEntry = returnIISWebserver(WebServerComment)
  331.             If Server Is Nothing Then
  332.                 Throw (New Exception("找不到给定的站点!"))
  333.             End If
  334.             Server = getRoot(Server)
  335.             For Each VirDir As DirectoryEntry In Server.Children
  336.                 If VirDir.Name.ToLower().Trim() = VirtualDir Then
  337.                     Server.Children.Remove(VirDir)
  338.                     Server.CommitChanges()
  339.                     Return
  340.                 End If
  341.             Next
  342.             Throw (New Exception("找不到给定的虚拟目录!"))
  343.         End Sub
  344.         ''' 删除虚拟目录
  345.         Public Shared Sub RemoveIISWebVirtualDir(ByVal iisVir As IISWebVirtualDir)
  346.             Dim Service As New DirectoryEntry("IIS://" + IISManagement.Machinename + "/W3SVC")
  347.             Dim Server As DirectoryEntry = returnIISWebserver(iisVir.Parent.index)
  348.             If Server Is Nothing Then
  349.                 Throw (New Exception("找不到给定的站点!"))
  350.             End If
  351.             Server = getRoot(Server)
  352.             For Each VirDir As DirectoryEntry In Server.Children
  353.                 If VirDir.Name.ToLower().Trim() = iisVir.Name.ToLower() Then
  354.                     Server.Children.Remove(VirDir)
  355.                     Server.CommitChanges()
  356.                     Return
  357.                 End If
  358.             Next
  359.             Throw (New Exception("找不到给定的虚拟目录!"))
  360.         End Sub
  361.     End Class
  362. End Namespace
PS:参考版为C#,来源已无法考证。
【ASP.NET教程-ASP.NET简介】构建强大的Web应用程序的开发框架 ASP.NET是一种用于构建Web应用程序的开发框架。它是Microsoft.NET平台的一部分,使用C#或VB.NET等编程语言进行开发。ASP.NET支持Web表单、MVC(模型-视图-控制器)和Web API等开发模式。ASP.NET基于服务器端技术,它将Web应用程序的逻辑和用户界面分离,以提供更好的可维护性和灵活性。它还提供了许多内置的功能和控件,用于处理用户输入、数据验证、会话管理等常见的Web开发任务。 阅读详情

相关推荐

Windows7下启用IIS7配置ASP运行环境的详细方法及常见调试问题

一、安装IIS7 开始-控制面板-默认程序-程序和功能-打开或关闭windows功能。 注意:设置ASP的时候,Application Development Features下的ASP,ASP.NET一定要勾选好 二、配置IIS 1. IIS Manager可以在管理工具中找到。点击站点,在web home页面中可以看到ASP的图标。 注意:如果没有ASP的图标,可能是在安装IIS...

EXSHUANG的博客 2951

读取IIS用户名和密码VBS代码

能读取到iis用户和密码,对跨站或者提权是有帮助的!像星外的虚拟主机。 有时候exe无法运行或者被杀毒软件K的话用VBS试试。挺简单的代码。 代码如下: Set ObjService=GetObject("IIS://LocalHost/W3SVC") For Each obj3w In objservice childObjectName=replace(obj3w.Ad...

dibodang1423的博客 231

IIS与ASP.NET的本质与联系探析

IIS提供了与ASP.NET集成的功能:IIS与ASP.NET紧密集成,提供了许多与ASP.NET开发相关的功能。例如,IIS可以处理ASP.NET的特定配置文件(如web.config),并根据配置文件中的设置对应用程序进行管理。此外,IIS还提供了对ASP.NET应用程序池的管理,可以控制应用程序的生命周期和资源分配。IIS作为Web服务器软件托管ASP.NET应用程序,并提供了与ASP.NET集成的功能。本文将探讨IIS和ASP.NET的本质及其之间的联系,并提供相应的源代码示例。

KiMysql的博客 309

利用VB6.0开发基于IIS的应用程序之一(转)

本文介绍了利用VisualBasic开发IIS应用程序的方法和步骤。使用这种开发方法不但大大简化了IIS应用程序的开发过程,而且使我们的Web站点具有更强的功能和更大的灵活性。   一、概述   大家知道,IIS(Interne...

csdn864883的博客 750

VB.NET 到 C# 代码转换工具:从VB.NET 到 C# 的自动化之旅

在软件开发的历史长河中,语言的进化和平台的演进不断地推动着技术创新。随着.NET平台的成熟,VB.NET和C#作为其中的两种主要编程语言,各自承载着不同的设计哲学和应用场景。然而,在某些情况下,开发者可能需要在两种语言之间转换代码,例如,重构项目、迁移代码库、或是为了利用C#的某些特定语言特性。本章将概述VB.NET与C#代码转换的重要性、挑战以及可能面临的场景。我们将分析两者在语法结构、编译时特性、运行时行为等方面的差异,并简述为何开发者会寻求进行代码转换。

weixin_30951515的博客 1373

全面掌握ASP.NET与VB.NET:从入门到精通指南

ASP.NET 是一个开源的服务器端 Web 应用程序框架,用于构建动态网站、服务和应用程序。它作为.NET Framework的一部分,允许开发者使用.NET语言(如C#和VB.NET)来编写Web应用程序。ASP.NET 提供了一套丰富的控件和类库,旨在简化开发过程,同时提供高性能和可扩展性。在VB.NET中,变量是存储数据的基本单位,而数据类型决定了变量可以存储的数据种类。VB.NET是一种强类型语言,这意味着在声明变量时必须指定其数据类型。

weixin_32445049的博客 585

vb.net 实现http服务器

http://blog.okbase.net/vbfans/archive/819.html 作者:Eugene Popov 下载源代码:http://www.okbase.net/file/item/23112 介绍 在学习.NET编程时,我试图创建一个简单的web服务器。我有许多HTTP服务器在互联网上,但都比较复杂而且不能调用PHP和EXE文件。所以我决定写一

ngamgolden的博客 5643

VB.NET写的Windows服务启停控制工具,带完整VS工程和核心服务管理代码

一个开箱即用的VB.NET Windows服务管理小工具,能直接启动、停止、暂停、继续、重启本地系统中的任意Windows服务。整个项目基于.NET Framework开发,使用标准ServiceController类与系统服务交互,不依赖第三方库。压缩包里有完整的Visual Studio解决方案(WindowsApplication1.sln)、项目源文件、.suo用户配置,以及独立封装的服务操作模块(WindowsServicesCode目录),所有代码在VS2015及以上版本中可直接打开、编译、运行

196

基于IIS的VB.NET Webservice服务和VB6 Webservice客户端代码测试

微软为VB6开发了专门的toolkit,直接点安装,封装好的组件就都注册到系统中了,写程序时直接引用。还带了个WSDL Generator,是将VB6的activex转换成webservice外供服务用的。Microsoft Soap Type Library v3.0 中可用的东西挺多的,用红框中的SoadClient30

weixin_45707491的博客 731

VB开发ASP组件教程与实战

ASP(Active Server Pages)是一种服务器端脚本环境,用于创建动态交互式的Web应用程序。通过ASP,开发者可以将HTML页面与脚本代码结合,实现在服务器端对数据进行处理后返回给客户端浏览器。VB.NET是Microsoft推出的一门面向对象的编程语言,它继承并发展了VB系列语言的特性,同时加入了.NET框架的跨语言和跨平台能力。VB.NET的关键特性包括:完全的面向对象:VB.NET实现了完整的面向对象编程范式,包括封装、继承和多态。强类型语言。

weixin_42510243的博客 816

基于VB2005的.NET TCP/IP服务器侦听实现详解

在现代软件开发中,基于网络的通信已成为各类应用系统不可或缺的一部分。.NET平台通过命名空间提供了对TCP/IP协议栈的深度支持,使得开发者能够高效构建可靠的网络服务。其中,类扮演着构建TCP服务器的核心角色,它封装了底层Socket的复杂操作,如监听端口、接受连接请求等,允许开发者以同步或异步方式接收客户端连接。该类适用于需要长期运行、稳定响应客户端请求的服务场景,如聊天服务器、文件传输服务等,是实现C/S架构通信的基础构件。

weixin_42128315的博客 1063

用vb.net开发的简易服务器

在这里介绍程序主要实现的功能以及流程。 程序在启动后会开启1个线程,1个定时器,一个线程用来接受来自客户端的连接,定时器用来检测当前有多少个客户连接,当有一个客户连接是,会开启一个线程用来与客户传送消息。为了简单起见,服务器发送消息为广播发送。 全局变量: Dim listen_thread As Thread’监听线程 Dim listener As Socket '套接字 Public allDone As New ManualResetEvent(False) Dim Thread_listen As

chinaherolts2008的博客 722

.NET Web开发实战课本源代码完整项目

安装最新版.NET SDK后,可通过以下命令验证环境dotnet run执行dotnet run后,应用将在Kestrel服务器上启动,默认监听,展示初始页面。该流程体现了.NET现代化开发的轻量化与跨平台特性,为后续深入学习打下基础。尽管 ASP.NET 提供大量内置控件,但在复杂业务场景下,往往需要封装可复用的复合控件。创建一个“评分控件”——由五个星形图片组成,用户点击可打分。新建类文件i <= 5;i++)// 向容器传播事件。

weixin_35762258的博客 819

VB.NET中如何利用ASP.NET进行Web开发

在VB.NET中利用ASP.NET进行Web开发是一个常见的做法,特别是在需要构建动态、交互式Web应用程序时。ASP.NET是一个由微软开发的开源Web应用程序框架,它允许开发者使用多种编程语言(包括VB.NET)来创建Web应用程序。

2402_85246552的博客 1843

vb.net 远程控制计算机

vb.net 远程控制计算机 ,可以监控其电脑上打开的软件,强制关闭计算机上的程序,发送消息,强制关机,注销,重启。可以用来整人和机房管理(分别有客户端和服务端)。

Windows上python的spark环境搭建

1.安装好JDK 下载并安装好jdk-12.0.1_windows-x64_bin.exe,配置环境变量: 新建系统变量JAVA_HOME,值为Java安装路径 新建系统变量CLASSPATH,值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注意最前面的圆点) 配置系统变量PATH,添加 %JAVA_HOME%bin;%JAVA_HOME%jrebin 在CMD中输入:java或者java -version,不显示不是内部命令等,说明安装成功。

weixin_43915303的博客 652

iis 模拟_使用IIS设置在.Net中模拟

iis 模拟 We can implement the Impersonation in an ASP.Net application based on the requirement for running an request under specific account else only the piece of business logic und...

cunchi8090的博客 488

第二章-Ethernet/IP基本概念

在I/O连接中,一旦连接建立,就不会有请求-响应数据,只会按照连接建立时指定的生产触发器所确定的时间间隔生产和消耗带有ConnectionID的数据。连接是通过连接管理器对象的Forward请求服务建立的,ForwardOpen请求包含所有连接参数,包括传输类、生产触发器、定时信息、电子密钥和连接ID。I/O适配器:I/O适配器从I/O扫描器接收隐式通信连接请求,然后以请求的速率生成I/O数据。I/O扫描器:启动与I/O适配器的隐式通信,需要处理连接的配置以及如何配置适配器。扫描器还支持启动显式报文。

_Nooice的博客 1233

asp asp.net .net c# vb之间的区别和关系

一、什么是.NET? .NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台。语言可以是C#,f#,j#,vb.net等等。JAVA和.NET不同的一点是java是跨平台的,不跨语言的。.NET跨平台仅限于安卓系统和IOS苹果系统。 .Net全称.NET F...

qq_30021219的博客 4323

PCL 法线定向【2025最新版】

几种法线定向方法的PCL代码实现。

点云侠的博客 2805

手把手教你学simulink(24.4)--Simulink在机器人视觉场景下的应用——基于视觉的物体跟踪与抓取

该系统集成了图像处理、目标检测、运动估计、路径规划、抓取控制和视觉反馈等多个功能模块,能够实现实时处理视觉数据、检测并跟踪移动物体、规划最优路径并控制机械臂进行精确抓取。本项目的目标是使用Simulink和MATLAB设计一个基于视觉的物体跟踪与抓取系统,该系统能够实时处理图像数据,检测并跟踪移动物体,规划最优的抓取路径,并控制机械臂进行精确抓取。为了验证系统的性能,我们在Simulink中搭建了基于视觉的物体跟踪与抓取系统的仿真模型。

MHD0815的博客 257

VB毕业设计下载(全套源码+配套论文)——基于vb+VB.NET+SQL Server的数据存储与交换系统设计与实现

该系统以Microsoft Visual Studio 作为开发工具,选用SQL Server 数据库来实现数据存储,并设计开发了一种基于B/S模式的数据存储与交换系统。该系统完成了用户注册管理、后台管理和用户空间管理功能;为每个用户提供了个人的存储空间;用户可以通过浏览器实现文件的上传、下载和资源的共享;根据用户空间等级限制用户存储空间的大小;为用户共享文件提供积分制;通过积分制来对用户空间升级实行优惠。最后通过测试,基本满足了用户的需求,但还需要进一步完善,才可以应用于实际中。

m0_66238867的博客 923

Python 爬虫高级实战:HTTPS 证书忽略与代理抓包配置

本文深入解析了HTTPS加密与SSL证书校验机制在爬虫开发中的核心问题及解决方案。文章首先剖析了HTTPS协议架构和证书校验流程,指出爬虫开发中常见的证书异常场景及其负面影响。随后详细介绍了Python主流请求库(requests、httpx、aiohttp)的证书忽略配置方法,包括同步/异步模式下的实现方案。针对代理环境,文章系统比较了HTTP、HTTPS、SOCKS5等代理类型的特性差异,并提供了完整的代理配置示例。特别对中间人抓包场景,阐述了Mitmproxy的工作原理和配置要点。最后提出了工程级爬虫

2503_91057718的博客 86
上一篇: 在内核模式驱动程序中调用 DLL
下一篇: 发布VB6安全多线程组件MT32.dll(1.0.0.2)
迈克揉索芙特
博客等级 码龄24年 865粉丝 71原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值