C#操作IIS设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#操作IIS设置相关的知识,希望对你有一定的参考价值。

通过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();

 

以上是关于C#操作IIS设置的主要内容,如果未能解决你的问题,请参考以下文章

C#程序员经常用到的10个实用代码片段 - 操作系统

通过 C# 代码在远程机器上启动和停止 IIS [关闭]

C# 中的 IIS7 应用程序池

vc++2010设置和c#一样的代码段,vs2010 两下tab设置

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

C#程序员经常用到的10个实用代码片段