簡體   English   中英

如何在 Web 安裝項目中創建新的應用程序池?

[英]How can I create a new application pool in a Web Setup Project?

我需要部署我的 web 服務。 它需要使用自己的憑據在 IIS 中的單獨應用程序池中運行。

是否可以通過在 VS 2008 中使用 Web 設置項目來做到這一點?

默認情況下,我似乎只能選擇現有的應用程序池。

查看這篇文章http://forums.iis.net/t/1061734.aspx ,它將對 Microsoft.Web.Administration Z06416233FE5EC4C59331222E 提供一些粗略的了解

我還沒有研究整個概念,但我想出了如何創建新池以及如何附加新的 web 站點/虛擬目錄。

創建應用程序池

Microsoft.Web.Administration.ServerManager manager = new Microsoft.Web.Administration.ServerManager();
manager.ApplicationPools.Add("NewApplicationPool");
manager.CommitChanges();

附加現有的虛擬目錄

Microsoft.Web.Administration.ServerManager manager = new Microsoft.Web.Administration.ServerManager();
Site defaultSite = manager.Sites["Default Web Site"];

// defaultSite.Applications will give you the list of 'this' web site reference and all
// virtual directories inside it -- 0 index is web site itself.

Microsoft.Web.Administration.Application oVDir = defaultSite.Applications["/myApp"];            
oVDir.ApplicationPoolName = "NewApplicationPool";
manager.CommitChanges();

這樣,您可以使用自定義操作將應用程序池分配給您的新網站,覆蓋安裝程序 class 的提交方法。

如果仍然發現自己在掙扎,請告訴我,我會嘗試發送代碼。

問候 Faiyaz faiyazkhan@hotmail.com

我以前一直走這條路,不幸的是,您需要手動創建應用程序池或編寫自定義操作來為您管理它。

除了 Grzenio 在下面的評論中提出的問題:

“你能給我一個提示,從哪里開始尋找代碼/幫助類?你是把你的項目保留為 Web 設置項目,還是只使用標准應用程序設置項目?”

我在包含安裝項目的解決方案中添加了一個名為InstallHelper的新項目。 在那個項目中,我創建了一個名為InstallActions的 class,它來自:

System.Configuration.Install.Installer (MSDN)

您可以在Installer基礎 class 上覆蓋四種方法,以允許您根據安裝程序運行時是否處於安裝、提交、卸載或回滾階段指定自定義操作。

我還在設置項目用戶界面中添加了一些文本框對話框。 從這些對話中捕獲的輸入和 state 通過字典傳遞給您的自定義安裝操作。 IE:

using System.Collections.Specialized;
using System.ComponentModel;
using System.Configuration.Install;
using System.Windows.Forms;

namespace InstallHelper
{
  [RunInstaller(true)]
  public partial class PostInstallActions : Installer
  {   
    public override void Install(IDictionary state)
    {
      base.Install(state);
      // Do my custom install actions
    }

    public override void Commit(IDictionary state)
    {
      base.Commit(state);
      // Do my custom commit actions
    }

    public override void Uninstall(IDictionary state)
    {
      base.Uninstall(state);
      // Do my custom uninstall actions
    }
    public override void Rollback(IDictionary state)
    {
      base.Uninstall(state);
      // Do my custom rollback actions
    }
  }
}

要將您的自定義操作項目添加到安裝項目,請打開自定義操作查看器/編輯器並從InstallHelper項目中指定 output。

這是基礎知識,應該讓你開始。 Web 設置項目還支持自定義操作和其他用戶輸入對話框,因此除了自定義操作之外,您可能希望重新使用現有項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM