Pregunta

¿Hay alguna forma de configurar un proyecto de implementación web de Visual Studio 2005 para instalar una aplicación en un grupo de aplicaciones con nombre en lugar del grupo de aplicaciones predeterminado para un sitio web determinado?

¿Fue útil?

Solución

Aquí hay un buen artículo que describe acciones personalizadas: Blog de ScottGu's

La pregunta que hiciste fue respondida casi a la mitad de los comentarios de 'Ryan', desafortunadamente está en VB, pero no debería ser difícil de traducir:

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

... Donde APPPOOL se suministra como un argumento en la Acción personalizada.

Otros consejos

Puede usar una CustomAction para modificar IIS durante la implementación. Aquí hay un artículo sobre cómo hacerlo: Modificación de servicios de información de Internet durante la implementación con acciones personalizadas

El ejemplo en el artículo está en VB.Net, y no muestra explícitamente cómo cambiar el grupo de aplicaciones, pero debería ser fácil resolverlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top