Microsoft中提供了管理IIS7的一些非常強大的API——Microsoft.Web.Administration,可以很方便的讓我們以編 程的方式管理,設定IIS 7的各項配置。Microsoft.Web.Administration.dll位于IIS的目錄(%WinDir%System32 InetSrv)下,在項目中添加對其的引用后您就可以使用這些API了。
讓我們通過幾個例子來使用Microsoft.Web.Administration,下面的例子均非常易懂,我就不再過多解釋了。
建立一個站點(Site)
ServerManager iisManager = new ServerManager();
iisManager.Sites.Add("NewSite", "http", "*:8080:", "d:MySite");
iisManager.Update();
將一個應用程序(application)添加到一個站點
ServerManager iisManager = new ServerManager();
iisManager.Sites["NewSite"].Applications.Add("/Sales", "d:MyApp");
iisManager.Update();
建立一個虛擬目錄(Virtual Directory)
ServerManager iisManager = new ServerManager();
Application app = iisManager.Sites["NewSite"].Applications["/Sales"];
app.VirtualDirectories.Add("/VDir", "d:MyVDir");
iisManager.Update();
運行時控制:停止一個站點 ServerManager iisManager = new ServerManager();
iisManager.Sites["NewSite"].Stop();
運行時控制:回收應用程序池(Recyciling an Application Pool)
ServerManager iisManager = new ServerManager();
iisManager.ApplicationPools["DefaultAppPool"].Recycle();
運行時控制:得到當前正在處理的請求
ServerManager iisManager = new ServerManager();
foreach(WorkerPRocess w3wp in iisManager.WorkerProcesses) {
Console.WriteLine("W3WP ()", w3wp.ProcessId);
foreach (Request request in w3wp.GetRequests(0)) {
Console.WriteLine(" - ,,",
request.Url,
request.ClientipAddr,
request.TimeElapsed,
request.TimeInState);
}
}
還有一個有用之處是Microsoft.Web.Administration提供了對*.config(例如web.config)文件的編輯功能,讓 您再也不用像修改普通xml文件一樣修改*.config了。但是原作者說他將在今后的Post中詳細說明,我也只暫且寫到這里了。
新聞熱點
疑難解答
圖片精選