C#操作IIS7程序池新建站点站点配置

【菜科解读】
最近在做一个WEB程序的安装包;对一些操作IIS进行一个简单的总结;主要包括对IIS进行站点的新建以及新建站点的NET版本的选择,还有针对IIS7程序池的托管模式以及版本的操作;首先要对Microsoft.Web.Administration进行引用,它主要是用来操作IIS7;
using System.DirectoryServices;using Microsoft.Web.Administration;
1:首先是对本版IIS的版本进行配置:
DirectoryEntry getEntity = new DirectoryEntry("IIS://localhost/W3SVC/INFO"); string Version = getEntity.Properties["MajorIISVersionNumber"].Value.ToString(); MessageBox.Show("IIS版本为:" + Version);2:是判断程序池是存在;
/// /// 判断程序池是否存在 /// ///程序池名称 /// true存在 false不存在 private bool IsAppPoolName(string AppPoolName) bool result = false; DirectoryEntry appPools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); foreach (DirectoryEntry getdir in appPools.Children) if (getdir.Name.Equals(AppPoolName)) result = true; return result; }
3:删除应用程序池
/// /// 删除指定程序池 /// ///程序池名称 /// true删除成功 false删除失败 private bool DeleteAppPool(string AppPoolName) bool result = false; DirectoryEntry appPools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); foreach (DirectoryEntry getdir in appPools.Children) if (getdir.Name.Equals(AppPoolName)) getdir.DeleteTree(); result = true; catch result = false; return result; }
4:创建应用程序池 (对程序池的设置主要是针对IIS7;IIS7应用程序池托管模式主要包括集成跟经典模式,并进行NET版本的设置)
string AppPoolName = "LamAppPool"; if (!IsAppPoolName(AppPoolName)) DirectoryEntry newpool; DirectoryEntry appPools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); newpool = appPools.Children.Add(AppPoolName, "IIsApplicationPool"); newpool.CommitChanges(); MessageBox.Show(AppPoolName + "程序池增加成功"); #endregion #region 修改应用程序的配置(包含托管模式及其NET运行版本) ServerManager sm = new ServerManager(); sm.ApplicationPools[AppPoolName].ManagedRuntimeVersion = "v4.0"; sm.ApplicationPools[AppPoolName].ManagedPipelineMode = ManagedPipelineMode.Classic; //托管模式Integrated为集成 Classic为经典 sm.CommitChanges(); MessageBox.Show(AppPoolName + "程序池托管管道模式:" + sm.ApplicationPools[AppPoolName].ManagedPipelineMode.ToString() + "运行的NET版本为:" + sm.ApplicationPools[AppPoolName].ManagedRuntimeVersion);运用C#代码来对IIS7程序池托管管道模式及版本进行修改;
5:针对IIS6的NET版进行设置;因为此处我是用到NET4.0所以V4.0.30319 若是NET2.0则在这进行修改v2.0.50727
//启动aspnet_regiis.exe程序 string fileName = Environment.GetEnvironmentVariable("windir") + @"\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"; ProcessStartInfo startInfo = new ProcessStartInfo(fileName); //处理目录路径 string path = vdEntry.Path.ToUpper(); int index = path.IndexOf("W3SVC"); path = path.Remove(0, index); //启动ASPnet_iis.exe程序,刷新脚本映射 startInfo.Arguments = "-s " + path; startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; Process process = new Process(); process.StartInfo = startInfo; process.Start(); process.WaitForExit(); string errors = process.StandardError.ReadToEnd();6:平常我们可能还得对IIS中的MIME类型进行增加;下面主要是我们用到两个类型分别是:xaml,xap
IISOle.MimeMapClass NewMime = new IISOle.MimeMapClass(); NewMime.Extension = ".xaml"; NewMime.MimeType = "application/xaml+xml"; IISOle.MimeMapClass TwoMime = new IISOle.MimeMapClass(); TwoMime.Extension = ".xap"; TwoMime.MimeType = "application/x-silverlight-app"; rootEntry.Properties["MimeMap"].Add(NewMime); rootEntry.Properties["MimeMap"].Add(TwoMime); rootEntry.CommitChanges();7:下面是做安装时一段对IIS进行操作的代码;兼容IIS6及IIS7;新建虚拟目录并对相应的属性进行设置;对IIS7还进行新建程序池的程序;并设置程序池的配置;
/// /// 创建网站 /// ///public void CreateNewWebSite(NewWebSiteInfo siteInfo) if (!EnsureNewSiteEnavaible(siteInfo.BindString)) throw new Exception("该网站已存在" + Environment.NewLine + siteInfo.BindString); DirectoryEntry rootEntry = GetDirectoryEntry(entPath); newSiteNum = GetNewWebSiteID(); DirectoryEntry newSiteEntry = rootEntry.Children.Add(newSiteNum, "IIsWebServer"); newSiteEntry.CommitChanges(); newSiteEntry.Properties["ServerBindings"].Value = siteInfo.BindString; newSiteEntry.Properties["ServerComment"].Value = siteInfo.CommentOfWebSite; newSiteEntry.CommitChanges(); DirectoryEntry vdEntry = newSiteEntry.Children.Add("root", "IIsWebVirtualDir"); vdEntry.CommitChanges(); string ChangWebPath = siteInfo.WebPath.Trim().Remove(siteInfo.WebPath.Trim().LastIndexOf('\\'),1); vdEntry.Properties["Path"].Value = ChangWebPath; vdEntry.Properties["AccessRead"][0] = true; //设置读取权限 vdEntry.Properties["AccessWrite"][0] = true; vdEntry.Properties["AccessScript"][0] = true;//执行权限 vdEntry.Properties["AccessExecute"][0] = false; vdEntry.Properties["DefaultDoc"][0] = "Login.aspx";//设置默认文档 vdEntry.Properties["AppFriendlyName"][0] = "LabManager"; //应用程序名称 vdEntry.Properties["AuthFlags"][0] = 1;//0表示不允许匿名访问,1表示就可以3为基本身份验证,7为windows继承身份验证 vdEntry.CommitChanges(); //操作增加MIME //IISOle.MimeMapClass NewMime = new IISOle.MimeMapClass(); //NewMime.Extension = ".xaml"; NewMime.MimeType = "application/xaml+xml"; //IISOle.MimeMapClass TwoMime = new IISOle.MimeMapClass(); //TwoMime.Extension = ".xap"; TwoMime.MimeType = "application/x-silverlight-app"; //rootEntry.Properties["MimeMap"].Add(NewMime); //rootEntry.Properties["MimeMap"].Add(TwoMime); //rootEntry.CommitChanges(); #region 针对IIS7 DirectoryEntry getEntity = new DirectoryEntry("IIS://localhost/W3SVC/INFO"); int Version =int.Parse(getEntity.Properties["MajorIISVersionNumber"].Value.ToString()); if (Version > 6) #region 创建应用程序池 string AppPoolName = "LabManager"; if (!IsAppPoolName(AppPoolName)) DirectoryEntry newpool; DirectoryEntry appPools = new DirectoryEntry("IIS://localhost/W3SVC/AppPools"); newpool = appPools.Children.Add(AppPoolName, "IIsApplicationPool"); newpool.CommitChanges(); #endregion #region 修改应用程序的配置(包含托管模式及其NET运行版本) ServerManager sm = new ServerManager(); sm.ApplicationPools[AppPoolName].ManagedRuntimeVersion = "v4.0"; sm.ApplicationPools[AppPoolName].ManagedPipelineMode = ManagedPipelineMode.Classic; //托管模式Integrated为集成 Classic为经典 sm.CommitChanges(); #endregion vdEntry.Properties["AppPoolId"].Value = AppPoolName; vdEntry.CommitChanges(); #endregion //启动aspnet_regiis.exe程序 string fileName = Environment.GetEnvironmentVariable("windir") + @"\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"; ProcessStartInfo startInfo = new ProcessStartInfo(fileName); //处理目录路径 string path = vdEntry.Path.ToUpper(); int index = path.IndexOf("W3SVC"); path = path.Remove(0, index); //启动ASPnet_iis.exe程序,刷新脚本映射 startInfo.Arguments = "-s " + path; startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; Process process = new Process(); process.StartInfo = startInfo; process.Start(); process.WaitForExit(); string errors = process.StandardError.ReadToEnd(); if (errors != string.Empty) throw new Exception(errors); }string entPath = String.Format("IIS://{0}/w3svc", "localhost");public DirectoryEntry GetDirectoryEntry(string entPath) DirectoryEntry ent = new DirectoryEntry(entPath); return ent; public class NewWebSiteInfo private string hostIP; // 主机IP private string portNum; // 网站端口号 private string descOfWebSite; // 网站表示。
一般为网站的网站名。
例如"www.dns.com.cn" private string commentOfWebSite;// 网站注释。
一般也为网站的网站名。
private string webPath; // 网站的主目录。
例如"e:\ mp" public NewWebSiteInfo(string hostIP, string portNum, string descOfWebSite, string commentOfWebSite, string webPath) this.hostIP = hostIP; this.portNum = portNum; this.descOfWebSite = descOfWebSite; this.commentOfWebSite = commentOfWebSite; this.webPath = webPath; public string BindString return String.Format("{0}:{1}:{2}", hostIP, portNum, descOfWebSite); //网站标识(IP,端口,主机头值) public string PortNum return portNum; public string CommentOfWebSite return commentOfWebSite; public string WebPath return webPath; }
8:下面的代码是对文件夹权限进行设置,下面代码是创建Everyone 并给予全部权限
/// /// 设置文件夹权限 处理给EVERONE赋予所有权限 /// ///文件夹路径 public void SetFileRole() string FileAdd = this.Context.Parameters["installdir"].ToString(); FileAdd = FileAdd.Remove(FileAdd.LastIndexOf('\\'), 1); DirectorySecurity fSec = new DirectorySecurity(); fSec.AddAccessRule(new FileSystemAccessRule("Everyone",FileSystemRights.FullControl,InheritanceFlags.ContainerInherit|InheritanceFlags.ObjectInherit,PropagationFlags.None,AccessControlType.Allow)); System.IO.Directory.SetAccessControl(FileAdd, fSec); } 操作,IIS7,程序,池,新建,站点,配置,最近,在做,
戚家军鸳鸯阵有多少个人?鸳鸯阵是如何摆如何操作的
倭寇过处,村毁人亡,瓦砾遍地,一片狼藉,大明百姓避之如瘟疫。
后来,明朝也曾组织军队征剿倭寇。
但面对日本人锋利的倭刀和强悍的战力,明军鲜有胜绩,老百姓依然屡遭蹂躏。
期间,也有勇敢的百姓奋起反抗,但在装备精炼和训练有素的倭寇面前,这种抵抗无异于羊入虎口,换来的只是倭寇更加残忍的报复和血腥的杀戮。
直到出现,这种局面才得以彻底扭转。
他组织了一支,始终战斗在抗倭前线,有力地打击了倭寇的嚣张气焰,让倭寇闻风丧胆,望风而逃。
(戚继光剧照) 那么,戚家军是如何打得倭寇鬼哭狼嚎,彻底扭转了败局的呢? 这主要有赖于戚继光发明的一种阵法——鸳鸯阵。
戚家军对付倭寇的鸳鸯阵一般由11人组成,其中设队长一名,居中指挥调度,协调攻防时机。
还负责观察敌情,为队员提供敌方攻击方向。
同时还可根据战场情况,指挥鸳鸯阵的阵型变换。
鸳鸯阵的最前面,是手持盾牌的两个士兵。
一人持长盾牌居左,负责遮挡倭寇的箭矢和长枪攻击,为其后的士兵提供防护。
另一人持短藤牌和标枪以及腰刀居右,利用短盾牌的灵活轻便,除了防卫外,还可以用所佩腰刀和标枪攻击倭寇。
盾牌兵的后面,是两个手持狼筅的士兵分居左右。
所谓“狼筅”,就是选择东南地区生长了多年的毛竹,留下前端的众多枝丫,经过高温处理,让这些枝丫形成规整的弯曲状。
并在每根枝丫的尖端绑上锋利的箭矢,再在竹竿的末端缚上利刃。
这种造型奇特的武器,长约3米,对付倭寇的倭刀有一定的优势。
纷乱的竹枝可以大大缓阻倭寇的凌厉攻势,为后面的长枪手,提供防护和赢得刺杀敌人时间。
还可以利用狼筅上的利刃,伺机刺杀敌人。
而且狼筅制作简单,材质易于获取,成本低廉。
狼筅后面有四个持长枪的士兵,左右各两个,主要是进攻和负责侧翼的保护。
在前面盾牌和狼筅的防护下,长枪手就可以利用距离优势放手击杀倭寇,不必担心倭寇的箭矢和倭刀的攻击。
最后两个士兵持“镗钯”,可以担任警戒任务,也可以击杀倭寇的,为前面的士兵提供支援。
(影视中的鸳鸯阵) 这种11人组成的阵型,因为左右人数、武器都对称,长短兼具,攻防兼备,因此被冠以了一个非常诗意的名字——“鸳鸯阵”。
当然,鸳鸯阵也不是一成不变的。
它还可以根据需要,随时变换队形。
既可以将纵队变成横队,也可以将鸳鸯阵拆开,变成两个小阵。
甚至还可以变成三小阵。
正是由于鸳鸯阵的灵活机动,发挥了团体协同作战的作用,才有效地抑制了倭寇强悍的单兵作战,弥补了明军武器上的劣势。
冯梦龙曾对这种阵法大加赞赏:“其法二牌平列,狼筅各跟随牌,每牌用长枪二枝夹之,短兵居后,戚继光每以鸳鸯阵取胜,痛歼倭寇。
” 1561年5月,戚继光初次使用鸳鸯阵,便大展神威,在其他明军的配合下,一举斩杀倭寇3万余人。
后来又利用此阵,在宁海全歼倭寇精锐。
而戚家军只有一名士兵受伤。
在台州保卫战中,戚家军以少胜多,用1500名士兵,击退倭寇2000余人,倭寇死伤大半,而戚家军只伤亡20余人。
光是在这一年,戚家军的鸳鸯阵,就取得了九战九捷的胜利,给予倭寇迎头痛击。
让的倭寇,在戚家军的面前处于完败之势。
以至于倭寇只要见到这种奇特的阵型就吓得肝胆俱裂,转身就跑。
(戚家军剧照) 除了鸳鸯阵外,戚家军还有着严明的纪律。
戚继光在《纪效新书》中,对戚家军的各种军法、禁令、奖赏办法、处罚规定都有详细的记载,这让戚家军成为了一支纪律严明,作风优良的虎狼之师。
戚继光还对士兵的招募做了改革。
他打破常规,不再单一地从军户中招募,而是从义乌一带民风彪悍的老百姓中招收士兵。
最初,他精选3000名农民和矿工,作为戚家军的班底。
这些士兵出生底层,身体强壮,孔武有力。
同时还能坚持训练,不畏艰苦,具有一往无前的勇气和不怕牺牲的精神。
戚继光也从不克扣士兵粮饷,按月发饷,士兵的收入远超务农或挖矿。
因此,戚家军形成了强大的凝聚力和战斗力。
正是由于戚家军严谨治军,创新战法,才让明朝东南沿海免遭倭寇再次肆掠,力保大明海疆的平静。
并让戚家军威名显赫,名垂青史。
随机文章月球上不生锈的纯铁原因,对氧产生免疫性永不生锈最有观赏性的悬崖跳水,从58米悬崖跳入水中腿骨脱臼东风5b洲际弹道导弹详解,可携带10枚50万吨当量核弹头生不逢时美国F7F虎猫战斗机,最强活塞式战斗机(仅仅生产25架)揭秘国外天体浴场,十个天体浴场让您找到目不暇接(宅男好去处)
2025年淮北社保待遇领取资格认证如何操作?教你如何在手机上认证,简单方便!
接下来随新社通app小编一起了解具体详情吧。
淮北?社保待遇领取资格认证可以通过多种线上和线下的方式进行操作。
?线上认证方法?电子社保卡认证?:用户可以通过电子社保卡小程序或APP进行认证。
具体步骤包括:打开电子社保卡,点击“全国服务”—“社保待遇资格认证”,然后按提示进行操作。
认证方式包括眨眼认证和读数认证。
?社会保险公共服务平台?:用户可以登录社会保险公共服务平台网站,按照提示进行资格认证。
??客户端小程序?:通过进入客户端小程序,领取电子社保卡后进行认证。
??中国领事APP?:定居境外的退休人员可以通过中国领事APP或小程序进行在线认证。
?线下认证方法?现场认证?:用户可以携带有效身份证件到就近的社保经办机构、街道办事处进行认证。
自助终端?:在部分地区,用户可以通过银行的自助终端机进行认证,如徽商银行、建设银行等。
?上门服务?:对于高龄、病残等行动不便的人员,社保经办机构或社区可以提供上门服务,通过微信视频等方式进行认证。
注意事项?认证周期?:一般每年认证一次,具体时间从上一次认证通过的次月开始计算,12个月内完成即可。
??认证失败处理?:如果认证不通过,用户应及时联系当地社保经办机构或社区进行核实和处理。
?特殊人群服务?:对于不会使用智能手机的老年朋友,子女可以通过“亲情服务”功能帮助认证,或者申请上门服务。
?