2008年7月22日 星期二

IIS 7 的網站管理 with managed code

以往,要在 IIS 6 新增網站,增加 application 或 application pool ,都必須靠人工由 inetmgr 操作,或寫 script 操作 activeX 元件。
不是非常方便。

學了 .net 後,這些工作並沒有得到改善。原因是 IIS 6 仍然是 unmanaged code。

終於, IIS 7 算是改寫了。因此,可以用下面的程式來新增一個 "MyDemoSite" 網站,port 是 8080。該網站的根目錄是 c:\demoSite。
並建立一個 applicatioin pool 為 "demoPool",且是 intergrated。並將該網站的 application pool 設為 "demoPool"。
(ps: 上一段的文字描述,反而不如程式碼來的清楚)

首先,必須 add reference。必須瀏覽到 C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll

然後再寫下面這一段

      ServerManager serverManager = new ServerManager();
      serverManager.Sites.Add("MyDemoSite", @"c:\demoSite", 8080);
      ApplicationPool pool = serverManager.ApplicationPools.Add("demoPool");
      pool.ManagedPipelineMode = ManagedPipelineMode.Integrated;
      serverManager.Sites["MyDemoSite"].Applications["/"].ApplicationPoolName = "demoPool";

      serverManager.CommitChanges();
這一段程式,必須由具有權限的人來執行。否則會發生例外。

沒有留言:

Share with Facebook