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

作者:小菜 更新时间:2025-03-16 点击数:
简介:最近在做一个WEB程序的安装包;对一些操作IIS进行一个简单的总结;主要包括对IIS进行站点的新建以及新建站点的NET版本的选择,还有针对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,程序,池,新建,站点,配置,最近,在做,

动态链接库,小猪教您如何解决无法定位程序输入点于动态链接库

“无法定位程序输入点于动态链接库”,那什么是“动态链接库”?在小编看来呀,动态链接库就是在我们电脑的Windows系统中,为了达到共享函数库概念的一种模式。

那么当我们遇到的时候该怎么解决呢?今天小编就来告诉你们当遇到“无法定位程序输入点于动态链接库”时该怎么解决。

小编的电脑出现过一种情况,就是有的时候想要打开一个软件的时候,会出现“无法定位程序输入点于动态链接库”的提示,一开始简直不要更懵,不过幸好被我找到了解决方法。

那么现在就来跟你们分享我找到的方法哈~在这儿,小编就以win10为例进行讲解哈~首先,先点开百度搜索,然后搜索“msvcr80.dll”,然后找到之后进行下载。

无法定位载图1然后,点击免去广告,在进行下载,如下图所示。

动态链接库载图2然后将下载的dll文件在 C:\windows\system32\ 和 C:\Windows\SysWOW64\ 里更保存一个,这样可以避免造成不必要的麻烦。

无法定位程序输入点载图3然后敲击键盘“WIN+R”。

无法定位程序输入点载图4然后在运行窗口输入xxxxx c:\windows\system32\msvcr80.dll.dll然后点击确定按钮,如下图所示注意标准格式: xxxxx空格 dll文件所在路径,xxxx代码如截图!无法定位载图5最后,dll动态库注册成功。

就完美解决啦~~~~程序输入点载图6 无法定位,动态链接库,程序输入点,无法定位程序

电脑自己装系统win7,简单操作指南!

想重装系统不会怎么办?菜科网一键重装系统轻松在线帮您搞定系统重装问题。

软件支持 在线重装、U盘制作、自定义重装 等多种模式。

简介:在现代社会中,电脑已经成为人们生活中不可或缺的工具之一。

而安装操作系统是使用电脑的第一步,本文将为大家介绍如何自己装系统win7,帮助大家轻松完成这一任务。

工具原料:品牌型号:任意品牌型号的电脑操作系统版本:Windows 7软件版本:最新版本的Windows 7安装光盘或U盘一、准备工作1、备份重要数据:在安装系统之前,务必备份电脑中的重要数据,以免丢失。

2、获取安装光盘或U盘:下载或购买最新版本的Windows 7安装光盘或U盘。

二、安装系统1、插入安装光盘或U盘:将安装光盘或U盘插入电脑的光驱或USB接口。

2、重启电脑:按下电脑电源按钮,重启电脑。

3、选择启动方式:在电脑启动时,按下相应的按键(通常是F12或Del键)进入启动菜单,选择从光驱或U盘启动。

4、按照提示进行安装:根据安装界面的提示,选择安装语言、时区等设置,然后点击“下一步”。

5、选择安装类型:选择“自定义(高级)”安装类型,然后选择要安装系统的磁盘分区。

6、等待安装完成:系统会自动进行安装,等待安装过程完成。

三、系统设置1、输入用户名和密码:在安装完成后,系统会要求输入用户名和密码,设置好后点击“下一步”。

2、选择网络类型:根据自己的网络环境选择“家庭网络”、“工作网络”或“公共网络”。

3、更新系统:连接到互联网后,系统会自动检查更新并安装最新的补丁和驱动程序。

四、常用软件安装1、浏览器:下载并安装常用的浏览器,如Google Chrome、Mozilla Firefox等。

2、办公软件:安装Microsoft Office或其他办公软件,满足日常办公需求。

3、杀毒软件:安装可靠的杀毒软件,保护电脑安全。

结论:通过本文的介绍,我们可以看到自己装系统win7并不是一件复杂的任务。

只要按照步骤进行操作,就能轻松完成安装。

在安装完成后,我们还可以根据自己的需求安装常用软件,使电脑更加实用。

希望本文能帮助到大家,让大家能够更好地使用电脑。

标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。

对于商业使用,请联系各自版权所有者,否则法律问题自行承担。

Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 电脑自己装系统win7,简单操作指南! 分类于: 回答于:2023-09-13 简介:在现代社会中,电脑已经成为人们生活中不可或缺的工具之一。

而安装操作系统是使用电脑的第一步,本文将为大家介绍如何自己装系统win7,帮助大家轻松完成这一任务。

工具原料:品牌型号:任意品牌型号的电脑操作系统版本:Windows 7软件版本:最新版本的Windows 7安装光盘或U盘一、准备工作1、备份重要数据:在安装系统之前,务必备份电脑中的重要数据,以免丢失。

2、获取安装光盘或U盘:下载或购买最新版本的Windows 7安装光盘或U盘。

二、安装系统1、插入安装光盘或U盘:将安装光盘或U盘插入电脑的光驱或USB接口。

2、重启电脑:按下电脑电源按钮,重启电脑。

3、选择启动方式:在电脑启动时,按下相应的按键(通常是F12或Del键)进入启动菜单,选择从光驱或U盘启动。

4、按照提示进行安装:根据安装界面的提示,选择安装语言、时区等设置,然后点击“下一步”。

5、选择安装类型:选择“自定义(高级)”安装类型,然后选择要安装系统的磁盘分区。

6、等待安装完成:系统会自动进行安装,等待安装过程完成。

三、系统设置1、输入用户名和密码:在安装完成后,系统会要求输入用户名和密码,设置好后点击“下一步”。

2、选择网络类型:根据自己的网络环境选择“家庭网络”、“工作网络”或“公共网络”。

3、更新系统:连接到互联网后,系统会自动检查更新并安装最新的补丁和驱动程序。

四、常用软件安装1、浏览器:下载并安装常用的浏览器,如Google Chrome、Mozilla Firefox等。

2、办公软件:安装Microsoft Office或其他办公软件,满足日常办公需求。

3、杀毒软件:安装可靠的杀毒软件,保护电脑安全。

结论:通过本文的介绍,我们可以看到自己装系统win7并不是一件复杂的任务。

只要按照步骤进行操作,就能轻松完成安装。

在安装完成后,我们还可以根据自己的需求安装常用软件,使电脑更加实用。

希望本文能帮助到大家,让大家能够更好地使用电脑。

菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。

加入收藏
               

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

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录