![](/img/trans.png)
[英]How do you modify a Web Setup Project to create a new website, app pool and virtual directory?
[英]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.