2009-03-18 11 views

Odpowiedz

7

Byłem już na tej drodze i niestety trzeba ręcznie utworzyć pulę aplikacji lub napisać działanie niestandardowe, aby zająć się tym za Ciebie.

nawiązaniu do pytania Grzenio w komentarzach poniżej:

„Czy możesz dać mi wskazówkę, gdzie zacząć szukać dla klas Kod/pomocniczych I czy zachować swój projekt projekt instalacji sieci Web, lub po prostu użyć standardowy projekt instalacji aplikacji? "

Dodałem nowy projekt o nazwie InstallHelper do rozwiązania zawierającego projekt instalacji. W tym projekcie utworzyłem klasę o nazwie InstallActions, która pochodzi od:

System.Configuration.Install.Installer (MSDN).

Dostępne są cztery metody, które można przesłonić w klasie bazowej Installer, aby umożliwić określanie niestandardowych działań w zależności od tego, czy są w fazie instalacji, zatwierdzania, odinstalowywania lub wycofywania, gdy instalator jest uruchomiony.

Dodałem również kilka dialogów w oknach tekstowych do interfejsu użytkownika projektu ustawień. Dane wejściowe i stan przechwycone z tych dialogów są przekazywane do niestandardowej akcji instalacji za pośrednictwem słownika. tj .:

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 
    } 
    } 
} 

Aby dodać swój projekt akcję niestandardową do projektu instalacji, otwórz akcje niestandardowe widza/edytor i określić wyjście z projektu InstallHelper.

To jest podstawa i powinno zacząć. Projekt konfiguracji sieci obsługuje również niestandardowe akcje i dodatkowe okna dialogowe wprowadzania danych użytkownika, więc możesz chcieć ponownie użyć istniejącego projektu, oprócz niestandardowej akcji.

+0

Używam Custom Actions, aby to zrobić w .net 2.0 –

+0

Pozdrawiam za odpowiedź. Czy możesz dać mi wskazówkę, gdzie zacząć szukać klasy kodu/pomocnika? Czy utrzymujesz swój projekt Web Setup Project, czy po prostu używasz standardowego projektu instalacji aplikacji? – Grzenio

+0

Początkowo przyjrzałem się projektowi instalacji sieci Web, ale zdecydowałem się użyć standardowego projektu instalacji, ponieważ moje wymagania obejmowały również konieczność zainstalowania usługi Windows i utworzenia strony internetowej. – Kev

10

Sprawdź ten wpis http://forums.iis.net/t/1061734.aspx, to da pewien ciekawy pomysł na temat Microsoft.Web.Administration dll.

Nie przestudiowałem całej koncepcji, ale wymyśliłem, jak utworzyć nową pulę i jak dołączyć do nowej witryny/katalogu wirtualnego.

Tworzenie puli aplikacji

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

Mocowanie z istniejącego katalogu wirtualnego

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

ten sposób można przypisać pulę aplikacji do swojej nowej stronie internetowej za pomocą działań niestandardowych, przesłanianie metody popełniania klasy instalatora.

Jeśli nadal masz problemy, daj mi znać, a spróbuję wysłać kod.

Pozdrawiam Faiyaz faiyazkhan @ hotmail.com

+2

Korzystanie z Microsoft.Web.Administracja jest możliwa tylko na komputerach z systemem Windows Server 2008 (np. IIS7). Aby programowo zarządzać usługami IIS 6.0 na komputerach z systemem Windows Server 2003, można wypróbować usługę WMI: http://msdn.microsoft.com/en-us/library/ms525309%28v=VS.90%29.aspx. Możesz także wypróbować System.DirectoryServices: http://msdn.microsoft.com/en-us/library/ms525791%28v=VS.90%29.aspx – rohancragg

Powiązane problemy