2009-03-18 12 views

risposta

7

Sono stato in questa strada prima e sfortunatamente avrete bisogno di creare manualmente il pool di applicazioni o scrivere un'azione personalizzata per gestirlo per voi.

seguito alla domanda di Grzenio nei commenti qui sotto:?

"Potresti darmi un suggerimento dove iniziare a cercare per le classi di codice/helper E si fa a mantenere il vostro progetto di un Progetto di installazione Web, o semplicemente usare il progetto di installazione delle applicazioni standard? "

Ho aggiunto un nuovo progetto chiamato InstallHelper alla soluzione contenente il progetto di installazione. In quel progetto ho creato una classe chiamata InstallActions che deriva da:

System.Configuration.Install.Installer (MSDN).

Esistono quattro metodi che è possibile sovrascrivere sulla classe base Installer per consentire all'utente di specificare azioni personalizzate a seconda che si stiano effettuando le fasi Installa, Conferma, Disinstalla o Ripristina quando il programma di installazione è in esecuzione.

Ho anche aggiunto un numero di dialoghi di caselle di testo all'interfaccia utente del progetto di installazione. L'input e lo stato acquisiti da questi dialoghi vengono passati all'azione di installazione personalizzata tramite un dizionario. cioè .:

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

Per aggiungere il vostro progetto un'azione personalizzata per il progetto di installazione, aprire il personalizzato azioni viewer/editor e specificare l'uscita dal progetto InstallHelper.

Ecco le basi e dovresti iniziare. Il Progetto di installazione Web supporta anche azioni personalizzate e finestre di dialogo aggiuntive per l'input dell'utente, quindi potresti voler riutilizzare il tuo progetto esistente, oltre a un'azione personalizzata.

+0

Io uso Azioni personalizzate per farlo in .net 2.0 –

+0

Cheers per la risposta. Potresti darmi un suggerimento su dove iniziare a cercare le classi di codice/helper? E mantieni il tuo progetto un progetto di installazione web o semplicemente usi il progetto di installazione dell'applicazione standard? – Grzenio

+0

Inizialmente ho esaminato il progetto di installazione Web, ma ho scelto di utilizzare il progetto di installazione standard perché i miei requisiti includevano anche la necessità di installare un servizio Windows e creare il sito web. – Kev

10

Controlla questo post http://forums.iis.net/t/1061734.aspx, darà qualche idea approssimativa su Microsoft.Web.Administration dll.

Non ho studiato l'intero concetto ma ho capito come creare un nuovo pool e come collegarlo con il nuovo sito web/directory virtuale.

Creazione di pool di applicazioni

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

Fissaggio con directory virtuale esistente

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

In questo modo è possibile assegnare pool di applicazioni per il vostro nuovo sito web utilizzando le azioni personalizzate, sovrascrivendo il metodo commit della classe di installazione.

Se vi trovate ancora in difficoltà, fatemelo sapere e proverò a inviare il codice.

Saluti Faiyaz faiyazkhan @ hotmail.com

+2

L'utilizzo di Microsoft.Web.Administration è possibile solo su computer Windows Server 2008 (ad esempio IIS7). Per l'amministrazione programmatica di IIS 6.0 su computer Windows Server 2003, è possibile provare WMI invece: http://msdn.microsoft.com/en-us/library/ms525309%28v=VS.90%29.aspx. Puoi anche provare System.DirectoryServices: http://msdn.microsoft.com/en-us/library/ms525791%28v=VS.90%29.aspx – rohancragg

Problemi correlati