Как я могу создать новый пул приложений в проекте веб-настройки? - PullRequest
14 голосов
/ 18 марта 2009

Мне нужно развернуть свой веб-сервис. Он должен работать в отдельном пуле приложений в IIS со своими учетными данными.

Возможно ли это сделать с помощью проекта веб-настройки в VS 2008?

По умолчанию кажется, что я могу выбрать только существующий пул приложений.

Ответы [ 2 ]

12 голосов
/ 21 апреля 2009

Ознакомьтесь с этим постом 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();

Таким образом, вы можете назначить пул приложений вашему новому веб-сайту, используя настраиваемые действия, переопределяя метод commit класса установщика.

Если вы все еще испытываете затруднения, пожалуйста, дайте мне знать, и я постараюсь отправить код.

С уважением Faiyaz faiyazkhan@hotmail.com

8 голосов
/ 18 марта 2009

Я уже шел этим путем, и, к сожалению, вам нужно будет создать пул приложений вручную или написать настраиваемое действие, чтобы управлять этим для вас.

В дополнение к вопросу Грзенио в комментариях ниже:

«Не могли бы вы дать мне подсказку, с чего начать поиск классов кода / помощника? И оставляете ли вы свой проект в проекте веб-настройки или просто используете стандартный проект установки приложения?»

Я добавил новый проект с именем InstallHelper в решение, содержащее проект установки. В этом проекте я создал класс с именем InstallActions, производный от:

System.Configuration.Install.Installer (MSDN) .

Существует четыре метода, которые вы можете переопределить в базовом классе Installer, чтобы позволить вам задавать пользовательские действия в зависимости от того, находитесь ли вы в фазах установки, фиксации, удаления или отката во время работы установщика.

Я также добавил несколько диалоговых окон с текстовыми полями в пользовательский интерфейс проекта установки. Ввод и состояние, полученные из этих диалогов, передаются в пользовательское действие установки через словарь. i.e.:

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.

Это основы, и вы должны начать. Проект веб-настройки также поддерживает настраиваемые действия и дополнительные диалоговые окна ввода пользователя, поэтому вы можете захотеть повторно использовать существующий проект в дополнение к настраиваемому действию.

...