Alterando o pool de aplicativos através de um projeto de implantação da Web
-
03-07-2019 - |
Pergunta
Existe uma maneira de configurar um projeto de implantação da web do Visual Studio 2005 para instalar um aplicativo em um pool de aplicativos nomeado em vez do pool de aplicativos padrão para um determinado site?
Solução
Há um bom artigo descrevendo ações personalizadas aqui:Blog de Scottgu
A pergunta que você fez é respondida no meio dos comentários de 'Ryan', infelizmente está no VB, mas não deve ser difícil traduzir:
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
... onde o AppPool é fornecido como um argumento na ação personalizada.
Outras dicas
Você pode usar um CustomAction para modificar o IIS durante a implantação, aqui está um artigo como fazê -lo:Modificando os serviços de informação da Internet durante a implantação com ações personalizadas
O exemplo no artigo está no vb.net e não mostra explicitamente como alterar o pool de aplicativos, mas deve ser fácil descobrir.