![](/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.