2008-10-03 15 views

Respuesta

12

Hay acciones personalizadas que describen un buen artículo aquí: ScottGu's Blog

La pregunta que se plantea es contestado a mitad de camino a través de los comentarios de Ryan ', lamentablemente es 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 proporciona como argumento en la acción personalizada.

+1

Estoy haciendo esto para 2 aplicaciones web en mi configuración, y funciona muy bien para la "Carpeta Web Personalizada" que es la 2ª aplicación web, pero para la "Carpeta de Aplicación Web" que obtienes por defecto, configure el grupo de aplicaciones durante la acción personalizada, pero luego configúrelo de nuevo en la aplicación predeterminada cuando esté listo. – Mampersat

Cuestiones relacionadas