Modifica del pool di applicazioni tramite un progetto di distribuzione Web
-
03-07-2019 - |
Domanda
Esiste un modo per configurare un progetto di distribuzione Web di Visual Studio 2005 per installare un'applicazione in un pool di applicazioni denominato anziché nel pool di app predefinito per un determinato sito Web?
Soluzione
C'è un buon articolo che descrive le azioni personalizzate qui: Blog di ScottGu
Alla domanda che hai posto viene data risposta a metà dei commenti di 'Ryan', sfortunatamente è in VB, ma non dovrebbe essere difficile da tradurre:
Private Sub assignApplicationPool(ByVal WebSite As String, ByVal Vdir As String, ByVal appPool As String)
Try
Dim IISVdir As New DirectoryEntry(String.Format("IIS://{0}/W3SVC/1/Root/{1}", WebSite, Vdir))
IISVdir.Properties.Item("AppPoolId").Item(0) = appPool
IISVdir.CommitChanges()
Catch ex As Exception
Throw ex
End Try
End Sub
Private strServer As String = "localhost"
Private strRootSubPath As String = "/W3SVC/1/Root"
Private strSchema As String = "IIsWebVirtualDir"
Public Overrides Sub Install(ByVal stateSaver As IDictionary)
MyBase.Install(stateSaver)
Try
Dim webAppName As String = MyBase.Context.Parameters.Item("TARGETVDIR").ToString
Dim vdirName As String = MyBase.Context.Parameters.Item("COMMONVDIR").ToString
Me.assignApplicationPool(Me.strServer, MyBase.Context.Parameters.Item("TARGETVDIR").ToString, MyBase.Context.Parameters.Item("APPPOOL").ToString)
Catch ex As Exception
Throw ex
End Try
End Sub
... Dove APPPOOL viene fornito come argomento nell'azione personalizzata.
Altri suggerimenti
È possibile utilizzare un CustomAction per modificare IIS durante la distribuzione. Ecco un articolo su come farlo: Modifica di Internet Information Services durante la distribuzione con azioni personalizzate
L'esempio nell'articolo è in VB.Net e non mostra esplicitamente come modificare il pool di applicazioni, ma dovrebbe essere facile capirlo.