C#操作IIS设置

时间:2021-12-08 07:33:11

通过C#可以很容易控制IIS的各种属性。

下面说明如何通过c#操作IIS的“ISAPI和CGI限制”

(一)人工操作

(二)利用命令

在开始菜单运行里,输入cmd,然后输入  

cd %windir%\system32\inetsrv

上面命令切换到IIS所安装的路径,然后运行 appcmd.exe 这是IIS7极其以后新增的一个命令,IIS6不支持

然后输入下面命令,列出所有的ISPAPI

appcmd list config /section:isapiCgiRestriction

(三)通过C#操作IIS

首先,必须确保电脑上已经安装了IIS,安装后,系统默认会注册一个DLL,例如我的位置是

C:\Windows\assembly\GAC_MSIL\Microsoft.Web.Administration\7.0.0.0__31bf3856ad364e35\Microsoft.Web.Administration.dll

添加对该DLL引用。 

然后就可以获取了,

代码为:

using (ServerManager serverManager = new ServerManager()) { Configuration config = serverManager.GetApplicationHostConfiguration(); ConfigurationSection isapiCgiRestrictionSection = config.GetSection("system.webServer/security/isapiCgiRestriction"); ConfigurationElementCollection isapiCgiRestrictionCollection = isapiCgiRestrictionSection.GetCollection(); foreach (ConfigurationElement element in isapiCgiRestrictionCollection) { string path = element["path"].ToString(); string allowed = element["allowed"].ToString(); string description = element["description"].ToString(); string groupId = element["groupId"].ToString(); } }

如果监控,,就可以看到

你也可以自己添加ISPAPI

//ConfigurationElement addElement = isapiCgiRestrictionCollection.CreateElement("add"); //addElement["path"] = @"C:\Windows\abc\aspnet_isapi.dll"; //addElement["allowed"] = true; //addElement["groupId"] = @"ContosoGroup"; //addElement["description"] = @"Contoso Extension"; //isapiCgiRestrictionCollection.Add(addElement); //serverManager.CommitChanges();