Ho un progetto di applicazione Web in VS2012 che sto pubblicando utilizzando un "Pacchetto di distribuzione Web". Voglio che questo pacchetto includa le impostazioni dell'app-pool, in particolare creando un pool di app IIS e assegnandogli l'applicazione appena creata.VS2012 Web Deploy Package per creare pool di applicazioni
Ho familiarità con l'opzione "Includi impostazioni del pool di applicazioni utilizzate da questo progetto Web" disponibile quando il progetto è configurato per utilizzare un'istanza IIS (non IIS Express), ma la configurazione di IIS è non parte del progetto file, e quindi non controllato dalla fonte. Cosa succede quando qualcuno crea un pacchetto di distribuzione su una macchina che non ha IIS configurato meticolosamente? Non ideale
In quale altro modo, come posso ottenere le impostazioni di AppPool nel mio pacchetto di distribuzione Web? Capisco che il provider appPoolConfig sia solo IIS7 +, sto bene con quella limitazione. Ho battuto la testa contro questo problema in passato e non ho mai trovato una soluzione. 18 mesi dopo, abbiamo una nuova versione di VisualStudio e una nuova pipeline di pubblicazione web, ci sono nuove opzioni per affrontarlo? O forse qualcosa che mi è mancato quando ho affrontato per la prima volta questo problema?
Modifica
OK, sto vedendo le seguenti opzioni come:
- configurare il mio progetto per sincronizzare le impostazioni da un'istanza di IIS. Come accennato, non sono un fan di questo dato che mette le impostazioni all'esterno del del progetto, il che significa che l'ambiente deve essere configurato meticolosamente per costruire + pubblicare. Inoltre, trascina altre impostazioni IIS che non desidero includere.
- Iniettare qualcosa nel web-publishing-pipeline (WPP) per modificare l'archive.xml. Mi sono divertito con questo in passato e ho avuto un successo limitato. Un problema è che la pipeline non è esattamente cooperativa con il lavoro direttamente sul file archive.xml, un altro problema sono alcuni degli attributi più criptici coinvolti, come
MSDeploy.MSDeployProviderOptions
che sembra avere qualche binario codificato Base64? Non ho idea di cosa mettere lì dentro. - Trova un "fornitore" esistente che può fare ciò che voglio. Potrei essere sfortunato, il provider
appPoolConfig
sembra voler solo leggere/scrivere IIS, non, per esempio, un file XML di impostazioni. Qualcuno sa altrimenti? - Scrivere il proprio "provider" per produrre voci di output manifest. Non sono sicuro, è possibile scrivere un fornitore personalizzato che scrive su un manifest usando il nome di un provider esistente? Come in,
MyCustomPoolProvider
scrive le sezioniappPoolConfig
in un manifest? Sembra un esercizio potenzialmente doloroso che può funzionare o meno. Avrei ancora bisogno di capire la codifica di qualsiasi cosa stia andando inMSDeploy.MSDeployProviderOptions
?
Ho la sensazione che l'ostacolo fondamentale con Web Deploy per quello che sto cercando di realizzare sia quanto strettamente si appoggi ai "provider". I provider preesistenti sono in gran parte progettati per la sincronizzazione di IIS, non sviluppo primario e pubblicazione. Succede che alcuni di questi provider possono essere relativamente collegati facilmente tramite MSBuild, ma la maggioranza insiste nel prelevare dati da IIS, e questo è quanto.
Eventuali indizi sul modello di codifica per 'MSDeploy.MSDeployProviderOptions'? Non che sia qualcosa che si potrebbe iniettare facilmente nella pipeline di WPP, ma essere in grado di regolare direttamente il contenuto di 'archive.xml' garantirebbe molta flessibilità. Dimentica i provider, uno potrebbe semplicemente creare uno strumento che generi l'xml necessario, lo impacchetta e tu possa essere implementato. – Snixtor
Il formato del file archive.xml non è definito. Tuttavia, è possibile iniettare i propri elementi potenzialmente (meno MSDeployProviderOptions) direttamente nel manifest di origine * prima * che il WPP chiami MSDeploy. –
Il manifest sorgente deve essere una raccolta di opzioni * read * del provider, non è vero? Come in, una sezione appPoolConfig in un manifest sorgente sta ancora cercando di leggere da IIS, è solo la natura del provider. – Snixtor