- A+
所属分类:Linux
微软为管理IIS7提供了非常强大的API——Microsoft.Web.Administration,可以很方便的让我们以编程的方式管理,设定IIS 7的各项配置。Microsoft.Web.Administration.dll位于IIS的目录(%WinDir%\System32\InetSrv)下,在项目中添加对其的引用后您就可以使用这些API了。下图显示了Microsoft.Web.Administration.dll中的主要对象。
下面通过几个简单的例子来体验Microsoft.Web.Administration的功能(本文所有代码均在 windows7 + iis7.5 下测试通过)
创建站点
- ServerManager iisManager = new ServerManager();
- iisManager.Sites.Add("1000seocom", "http", "*:80:", "d:\\1000seocom");
- iisManager.CommitChanges();
将一个应用程序(Application)添加到一个站点
- ServerManager iisManager = new ServerManager();
- iisManager.Sites["1000seocom"].Applications.Add("/blog", "d:\\blog");
- iisManager.CommitChanges();
建立一个虚拟目录(Virtual Directory)
- ServerManager iisManager = new ServerManager();
- Microsoft.Web.Administration.Application app = iisManager.Sites["1000seocom"].Applications["/blog"];
- app.VirtualDirectories.Add("/images", "d:\\virdir");
- iisManager.CommitChanges();
运行状态控制
停止站点
- ServerManager iisManager = new ServerManager();
- iisManager.Sites["1000seocom"].Stop();
启动站点
- ServerManager iisManager = new ServerManager();
- iisManager.Sites["1000seocom"].Start();
回收应用程序池
- ServerManager iisManager = new ServerManager();
- iisManager.ApplicationPools["DefaultAppPool"].Recycle();
得到当前正在处理的请求
- ServerManager iisManager = new ServerManager();
- StringBuilder str = new StringBuilder();
- foreach (WorkerProcess w3wp in iisManager.WorkerProcesses)
- {
- str.Append("W3WP "+ w3wp.ProcessId+"\n");
- foreach (Request request in w3wp.GetRequests(0))
- {
- str.Append(request.Url+ "-" +request.ClientIPAddr+" "+request.TimeElapsed+" "+request.TimeInState+"\n");
- }
- }
- MessageBox.Show(str.ToString());
更多功能请参考:http://msdn.microsoft.com/zh-cn/library/ms613523(v=vs.90).aspx