一个关于IIS的类
来源:互联网 发布:python脚本编写实例 编辑:程序博客网 时间:2024/05/22 11:18
Imports System
Imports System.DirectoryServices
Imports System.IO
Public Class IISManager
Public Shared Function CreateWebSite(ByVal webSiteName As String, ByVal pathToRoot As String) As WebSite
Dim root As DirectoryEntry = New DirectoryEntry("IIS://localhost/W3SVC")
' Find unused ID value for new web site
Dim siteID As Integer = 1
Dim e As DirectoryEntry
For Each e In root.Children
If e.SchemaClassName = "IIsWebServer" Then
Dim ID As Integer = Convert.ToInt32(e.Name)
If ID >= siteID Then
siteID = ID + 1
End If
End If
Next
' Create the root directory and welcome html file
CreatePhysicalDirectory(pathToRoot, webSiteName)
' Create web site
Dim site As New WebSite(CType(root.Invoke("Create", "IIsWebServer", siteID), DirectoryEntry))
site.ServerComment = webSiteName
'site.KeyType = "IIsWebServer"
site.ServerBindings = ":80:" + webSiteName
site.MaxBandwidth = "1048576"
site.ServerState = 2
site.LogFlags.LogExtFileFlags = 340871
site.FrontPageWeb = 1
'site.DefaultDoc = "Default.aspx"
'site.SecureBindings = ":443:" + webSiteName
site.ServerAutoStart = 1
site.ServerSize = 1
site.SetInfo()
' Create application virtual directory
Dim siteVDir As DirectoryEntry = site.Children.Add("Root", "IISWebVirtualDir")
siteVDir.Properties("AppIsolated")(0) = 2
siteVDir.Properties("Path")(0) = pathToRoot
siteVDir.Properties("AccessFlags")(0) = 513
siteVDir.Properties("FrontPageWeb")(0) = 1
siteVDir.Properties("AppRoot")(0) = "/LM/W3SVC/" + siteID.ToString() + "/Root"
'siteVDir.Properties("AppFriendlyName")(0) = "Root"
siteVDir.CommitChanges()
site.CommitChanges()
siteVDir.Close()
site.Close()
' Create temp virtual directory on Default Web Site
Dim deRoot As New DirectoryEntry("IIS://localhost/W3SVC/1/Root")
deRoot.RefreshCache()
Dim deNewVDir As DirectoryEntry = deRoot.Children.Add(webSiteName.Replace("."c, "-"c), "IIsWebVirtualDir")
deNewVDir.Properties("Path")(0) = pathToRoot
deNewVDir.Properties("AccessFlags")(0) = 513
deNewVDir.Properties("FrontPageWeb")(0) = 1
deNewVDir.CommitChanges()
deRoot.CommitChanges()
'Create a Application
deNewVDir.Invoke("AppCreate", True)
'Save Changes
deNewVDir.CommitChanges()
deRoot.CommitChanges()
deNewVDir.Close()
deRoot.Close()
Return site
End Function
Private Shared Sub CreatePhysicalDirectory(ByVal pathToRoot As String, ByVal webSiteName As String)
If (Directory.Exists(pathToRoot)) Then
Throw New Exception("Error creating new website: Customer root directory already exists at " + pathToRoot)
Else
Directory.CreateDirectory(pathToRoot)
Dim indexFile As New StreamWriter(pathToRoot + "/index.htm", False, System.Text.Encoding.ASCII)
indexFile.Write("
Welcome to "
indexFile.Close()
End If
End Sub
End Class
Public Class WebSite
Public Sub New(ByVal ObjDirectoryEntry As DirectoryEntry)
site = ObjDirectoryEntry
logFileFlags = New LogExtFileFlags(ObjDirectoryEntry)
End Sub
Private site As DirectoryEntry
Private logFileFlags As LogExtFileFlags
Public ReadOnly Property LogFlags() As LogExtFileFlags
Get
Return logFileFlags
End Get
End Property
Public Property ServerComment() As String
Get
Return CType(site.Properties("ServerComment")(0), String)
End Get
Set(ByVal Value As String)
site.Invoke("Put", "ServerComment", Value)
End Set
End Property
Public Property KeyType() As String
Get
Return CType(site.Properties("KeyType")(0), String)
End Get
Set(ByVal Value As String)
site.Invoke("Put", "KeyType", Value)
End Set
End Property
Public Property ServerBindings() As String
Get
Return CType(site.Properties("ServerBindings")(0), String)
End Get
Set(ByVal Value As String)
site.Invoke("Put", "ServerBindings", Value)
End Set
End Property
Public Property DefaultDoc() As String
Get
Return CType(site.Properties("DefaultDoc")(0), String)
End Get
Set(ByVal Value As String)
site.Invoke("Put", "DefaultDoc", Value)
End Set
End Property
Public Property MaxBandwidth() As String
Get
Return CType(site.Properties("MaxBandwidth")(0), String)
End Get
Set(ByVal Value As String)
site.Invoke("Put", "MaxBandwidth", Value)
End Set
End Property
Public Property ServerState() As Int32
Get
Return CType(site.Properties("ServerState")(0), Int32)
End Get
Set(ByVal Value As Int32)
site.Invoke("Put", "ServerState", Value)
End Set
End Property
Public Property FrontPageWeb() As Int32
Get
Return CType(site.Properties("FrontPageWeb")(0), Int32)
End Get
Set(ByVal Value As Int32)
site.Invoke("Put", "FrontPageWeb", Value)
End Set
End Property
Public Property SecureBindings() As String
Get
Return CType(site.Properties("SecureBindings")(0), String)
End Get
Set(ByVal Value As String)
site.Invoke("Put", "SecureBindings", Value)
End Set
End Property
Public Property ServerAutoStart() As Int32
Get
Return CType(site.Properties("ServerAutoStart")(0), Int32)
End Get
Set(ByVal Value As Int32)
site.Invoke("Put", "ServerAutoStart", Value)
End Set
End Property
Public Property ServerSize() As Int32
Get
Return CType(site.Properties("ServerSize")(0), Int32)
End Get
Set(ByVal Value As Int32)
site.Invoke("Put", "ServerSize", Value)
End Set
End Property
Public ReadOnly Property Children() As DirectoryEntries
Get
Return site.Children
End Get
End Property
Public ReadOnly Property Name() As String
Get
Return site.Name
End Get
End Property
Public Sub CommitChanges()
site.CommitChanges()
End Sub
Public Sub SetInfo()
site.Invoke("SetInfo")
End Sub
Public Sub Close()
site.Close()
End Sub
End Class
Public Class LogExtFileFlags
Public Sub New(ByVal ObjDirectoryEntry As DirectoryEntry)
site = ObjDirectoryEntry
End Sub
Private site As DirectoryEntry
Public Property LogExtFileFlags() As Int32
Get
Return CType(site.Properties("LogExtFileFlags")(0), Int32)
End Get
Set(ByVal Value As Int32)
site.Invoke("Put", "LogExtFileFlags", Value)
End Set
End Property
'Public Property LogExtFileBytesRecv() As Boolean
' Get
' Return CBool(site.Properties("LogExtFileBytesRecv")(0))
' End Get
' Set(ByVal Value As Boolean)
' Dim showInLog As Int32 = 0
' If Value Then
' showInLog = 1
' End If
' site.Invoke("Put", "LogExtFileBytesRecv", showInLog)
' End Set
'End Property
- 一个关于IIS的类
- 关于 IIS 的一个报错
- 关于IIS的修复
- 关于IIS的问题
- 关于IIS的问题!
- 关于iis的悲剧
- 关于IIS的使用
- 关于IIS服务器的介绍
- 关于iis错误的解决方法
- 关于IIS的两点问题。
- 关于IIS的远程访问
- 关于IIS的503.0错误
- 关于IIS的Error503错误
- 关于IIS不支持突然ASP,只支持HTML的解决方案的一个解决方法!
- 一个ASP.NET的IIS的完整控制类
- iis 6.0 关于iis 6.0网站访问401的问题
- 一个 iis的很郁闷的问题
- IIS中一个配置错误的解决
- 缩小数据库日志另类方法
- 更改数据库所有者的对象
- 我的程序人生
- 保证应用程序只有一个实例在运行
- 使用WMI获得硬盘的信息
- 一个关于IIS的类
- 关于硬盘序列号的类
- Struts 学习笔记1 -Struts Framework 概览
- 深入探讨MFC消息循环和消息泵
- 【CSplitterWnd技巧一】改变分割窗口拖动条的大小
- 【CSplitterWnd技巧二】使分割窗口不能改变大小
- 【IPC-钩子】WM_COPYDATA和鼠标钩子小程序
- 【CSplitterWnd技巧三】能拖动的带背景颜色的分割条
- 【VC经验】偶的小经验一