当前位置:  开发笔记 > 编程语言 > 正文

如何在Web Setup Project中创建新的应用程序池?

如何解决《如何在WebSetupProject中创建新的应用程序池?》经验,为你挑选了2个好方法。

我需要部署我的Web服务.它需要使用自己的凭据在IIS中的单独应用程序池中运行.

是否可以通过在VS 2008中使用Web安装项目来实现此目的?

默认情况下,我似乎只能选择现有的应用程序池.



1> 小智..:

看看这篇文章http://forums.iis.net/t/1061734.aspx,它会给出一些关于Microsoft.Web.Administration dll的粗略概念.

我还没有研究过整个概念,但我想到了如何创建新的池以及如何附加新的网站/虚拟目录.

创建应用程序池

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();

这样,您可以使用自定义操作将应用程序池分配给新网站,从而覆盖安装程序类的提交方法.

如果仍然发现自己在努力,请告诉我,我会尝试发送代码.

关心Faiyaz faiyazkhan@hotmail.com


只能在Windows Server 2008计算机(即IIS7)上使用Microsoft.Web.Administration.要在Windows Server 2003计算机上对IIS 6.0进行编程管理,可以尝试使用WMI:http://msdn.microsoft.com/en-us/library/ms525309%28v=VS.90%29.aspx.您还可以尝试System.DirectoryServices:http://msdn.microsoft.com/en-us/library/ms525791%28v=VS.90%29.aspx

2> Kev..:

我之前一直在这条路上,不幸的是你需要手动创建应用程序池或者编写一个自定义操作来为你管理它.

在下面的评论中继续Grzenio的问题:

"你能给我一个提示,从哪里开始寻找代码/辅助类?你是否将项目保持为Web安装项目,或者只是使用标准的应用程序安装项目?"

我添加了一个名为InstallHelper包含安装项目的解决方案的新项目.在那个项目中,我创建了一个名为的类InstallActions,它来自:

System.Configuration.Install.Installer(MSDN).

您可以在Installer基类上覆盖四种方法,以允许您根据安装程序运行时是处于"安装","提交","卸载"还是"回滚"阶段来指定自定义操作.

我还在安装项目用户界面中添加了许多文本框对话框.从这些对话中捕获的输入和状态将通过字典传递到您的自定义安装操作.即:

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项目的输出.

这是基础,应该让你开始.Web Setup Project还支持自定义操作和其他用户输入对话框,因此除了自定义操作之外,您可能还希望重新使用现有项目.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有