代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
操作iis 添加删除主机头源代码
作者:
/ 发布于
2011/1/17
/
739
准备工作:
1、在项目中添加System.EnterpriseServices和System.DirectoryServices引用
2、可能提示无访问权限之类的错误,在配制文件中添加
<div>using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.DirectoryServices; using System.EnterpriseServices;</div> <div>/// /// IISAdmin 的摘要说明 /// public class IISAdmin {</div> <div> #region 建IIS站点 public int CreateWebSite(string webSiteName, string pathToRoot, string bd) //创建网站 { DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC"); // Find unused ID value for new web site int siteID = 1; foreach (DirectoryEntry e in root.Children) { if (e.SchemaClassName == "IIsWebServer") { int ID = Convert.ToInt32(e.Name); if (ID >= siteID) { siteID = ID + 1; } } } // Create web site DirectoryEntry site = (DirectoryEntry)root.Invoke("Create", "IIsWebServer", siteID); site.Invoke("Put", "ServerComment", webSiteName);//网站名称 site.Invoke("Put", "ServerBindings", bd);//二级域名绑定 site.Invoke("Put", "ServerState", 2);//默认4 site.Invoke("Put", "DefaultDoc", "index.htm,index.asp,index.aspx,Default.aspx"); site.Invoke("Put", "ServerAutoStart", 1);//开启站点 site.Invoke("SetInfo"); DirectoryEntry siteVDir = site.Children.Add("ROOT", "IISWebVirtualDir"); siteVDir.Invoke("AppCreate", true); //创建应用程序站点 siteVDir.CommitChanges(); site.CommitChanges(); siteVDir.Properties["AppIsolated"][0] = 2;//默认2 siteVDir.Properties["Path"][0] = pathToRoot;//主目录路径 siteVDir.Properties["AccessFlags"][0] = 513; siteVDir.Properties["FrontPageWeb"][0] = 1; siteVDir.Properties["AppRoot"][0] = "/LM/W3SVC/" + siteID + "/Root"; siteVDir.Properties["AppFriendlyName"][0] = "默认应用程序"; siteVDir.Properties["AspEnableParentPaths"][0] = true; //父路径启用 siteVDir.CommitChanges(); site.CommitChanges(); return siteID; } <div> public void CreateSite(string port, string siteName, string siteExplain, string defaultDoc) { DirectoryEntry de = new DirectoryEntry("IIS://localhost/" + "w3svc"); //从活动目录中获取IIS对象。 object[] prams = new object[2] { "IIsWebServer", Convert.ToInt32(siteName) }; DirectoryEntry site = (DirectoryEntry)de.Invoke("Create", prams); //创建IISWebServer对象。 site.Properties["KeyType"][0] = "IIsWebServer"; site.Properties["ServerComment"][0] = siteExplain; //站点说明 site.Properties["ServerState"][0] = 2; //站点初始状态,1.停止,2.启动,3 site.Properties["ServerSize"][0] = 1; site.Properties["ServerBindings"].Add(":" + port + ":"); //站点端口 site.CommitChanges(); //保存改变 de.CommitChanges(); DirectoryEntry root = site.Children.Add("Root", "IIsWebVirtualDir"); //添加虚拟目录对象 root.Invoke("AppCreate", true); //创建IIS应用程序 root.Properties["path"][0] = @"D:\IISmanage"; //虚拟目录指向的物理目录 root.Properties["EnableDirBrowsing"][0] = false;//目录浏览 root.Properties["AuthAnonymous"][0] = false; root.Properties["AccessExecute"][0] = false; //可执行权限 root.Properties["AccessRead"][0] = true; root.Properties["AccessWrite"][0] = true; root.Properties["AccessScript"][0] = true;//纯脚本 root.Properties["AccessSource"][0] = false; root.Properties["FrontPageWeb"][0] = false; root.Properties["KeyType"][0] = "IIsWebVirtualDir"; root.Properties["AppFriendlyName"][0] = siteExplain; //应用程序名 root.Properties["AppIsolated"][0] = 2; root.Properties["DefaultDoc"][0] = defaultDoc; //默认文档 root.Properties["EnableDefaultDoc"][0] = true; //是否启用默认文档 root.CommitChanges(); site.CommitChanges(); root.Close(); site.Close(); de.CommitChanges(); //保存 site.Invoke("Start", null); //除了在创建过程中置初始状态外,也可在此调用方法改变状态 } <div> #endregion</div> <div> #region 域名绑定方法 public static void AddHostHeader(int siteid, string ip, int port, string domain)//增加主机头(站点编号.ip.端口.域名) { DirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/" + siteid); PropertyValueCollection serverBindings = site.Properties["ServerBindings"]; string headerStr = string.Format("{0}:{1}:{2}", ip, port, domain); if (!serverBindings.Contains(headerStr)) { serverBindings.Add(headerStr); } site.CommitChanges(); } #endregion</div> <div> #region 删除主机头 public static void DeleteHostHeader(int siteid, string ip, int port, string domain)//删除主机头(站点编号.ip.端口.域名) { DirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/" + siteid); PropertyValueCollection serverBindings = site.Properties["ServerBindings"]; string headerStr = string.Format("{0}:{1}:{2}", ip, port, domain); if (serverBindings.Contains(headerStr)) { serverBindings.Remove(headerStr); } site.CommitChanges(); } #endregion</div> <div> #region 删除站点 public static string DelSite(int siteidon) { int SiteID = siteidon; if (SiteID == null) return "error:该站点不存在!!";</div> <div> DirectoryEntry deRoot = new DirectoryEntry("IIS://localhost/W3SVC");</div> <div> DirectoryEntry deVDir = new DirectoryEntry(); deRoot.RefreshCache(); deVDir = deRoot.Children.Find("huke8huke", "IIsVirtualDir"); deRoot.Children.Remove(deVDir); //deVDir.Invoke("AppDelete",true); deRoot.CommitChanges(); deRoot.Close(); return "successful:删除站点成功!";</div> <div> } #endregion } </div>
试试其它关键字
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3