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();
时间: 2024-10-28 09:58:57

C#操作IIS设置的相关文章

C# 玩转计算机系列(二)-操作IIS服务

之前由于工作需要自己做一个一键部署的小工具,实现三个模块的功能:TFS操作创建映射并获取最新源代码:SQL Server数据库注册表配置数据库连接:IIS站点部署,生成可访问的IIS站点.由于是基于自己的工作环境下的开发,所以在TFS和SQL Server配置工具化实现,有一些点是默认按照公司的环境配置参数默认的,虽然不是广泛适用每一种情况的环境部署,但是在学习这三个模块的开发过程中,还是有很多东西是可以值得分享的. 今天先分享一下,如何通过工具化实现IIS站点部署和配置,为了可复用性,IIS操

.Net中如何操作IIS

Net中实际上已经为我们在这方面做得很好了.FCL中提供了不少的类来帮助我们完成这项工作,让我们的开发工作变非常简单和快乐.编程控制IIS实际上很简单,和ASP一样,.Net中需要使用ADSI来操作IIS,但是此时我们不再需要GetObject这个东东了,因为.Net为我们提供了更加强大功能的新东东. System.DirectoryServices命名空间中包括了些强大的东东--DirectoryEntry,DirectoryEntries,它们为我们提供了访问活动目录的强大功能,在这些类允许

C#操作IIS程序池及站点的创建配置

最近在做一个WEB程序的安装包:对一些操作IIS进行一个简单的总结:主要包括对IIS进行站点的新建以及新建站点的NET版本的选择,还有针对IIS7程序池的托管模式以及版本的操作:首先要对Microsoft.Web.Administration进行引用,它主要是用来操作IIS7: using System.DirectoryServices;using Microsoft.Web.Administration; 1:首先是对本版IIS的版本进行配置: DirectoryEntry getEntit

利用ASP.NET操作IIS (可以制作安装程序)

很多web安装程序都会在IIS里添加应用程序或者应用程序池,早期用ASP.NET操作IIS非常困难,不过,从7.0开始,微软提供了 Microsoft.Web.Administration 类,可以很容易操作IIS. 本文主要介绍四点: 一.添加应用程序 二.添加应用程序池 三.设置应用程序所使用的应用程序池 四.IIS里其他属性的设置 首先,必须确保电脑上已经安装了IIS,安装后,系统默认会注册一个DLL,通常位置是 C:\Windows\assembly\GAC_MSIL\Microsoft

IIS 设置

解决办法:1. 1).通过webconfig中增加模拟,加入管理员权限, <identity impersonate="true" userName="系统管理员" password="系统管理员密码"/> 2).这样就能够启动Application进程,操作EXCEL了,能够新建EXCEL,导出EXCEL,但是还是不能打开服务器端的EXCEL文件 2. 在组件服务,DOCM设置 Microsoft Excel Application

C# 使用代码来操作 IIS

由于需要维护网站的时候,可以自动将所有的站点HTTP重定向到指定的静态页面上. 要操作 IIS 主要使用到的是“Microsoft.Web.Administration.dll”. 该类库不可以在引用里找到,存放在“C:\Windows\System32\inetsrv”目录下. Microsoft.Web.Administration.ServerManager 该类是操作 IIS 的类. var siteName = "admin.rapid.com"; using (Server

iis设置Gzip后,无后缀的url无法压缩解决 MVC iis GZIP

<IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/gzip"        HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"        HcCreateFlags="1"        HcDoDynamicCompression="TRUE"        HcDoOnDema

C#使用DirectoryEntry操作IIS创建网站和虚拟路径

在.net中有一个比较好的字符串参数替换的方案RazorEngine推荐大家看看原网站,然后做个小联系然后你就懂啦 首先呢得下载一个吧, vs中tools-> Library Paging Manager->Manager Nuget 在然后呢Install-Package RazorEngine 等待搜索结束吧,然后下载下来两个dll RazorEngine.dll  没说的一定要引用到工程里面的 System.Web.Razor.dll 这个dll工程里面是引用了的  多以会提示替换,别犹

CKFinder 弹出窗口操作并设置回调函数

CKFinder 弹出窗口操作并设置回调函数 官方例子参考CKFinderJava-2.4.1/ckfinder/_samples/popup.html 写一个与EXT集成的小例子 Ext.define("MyButton", { extend : "Ext.Button", text : "ckfinder", initComponent : function() { var me = this; Ext.apply(me, { handler