2008-10-03 9 views

Répondre

12

Il y a un bon article décrivant des actions personnalisées ici: ScottGu's Blog

La question que vous avez demandé est répondu à mi-chemin à travers les commentaires par Ryan ', malheureusement, il est en VB, mais il ne devrait pas être difficile à traduire :

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 

... Où APPPOOL est fourni en tant qu'argument dans l'action personnalisée.

+1

Je le fais pour 2 applications web dans ma configuration - et cela fonctionne très bien pour le "Web Custom Folder" qui est la 2ème application web, mais pour le "Web Application Folder" que vous obtenez par défaut, il sera Définissez le pool d'applications pendant l'action personnalisée, puis définissez-le sur l'application par défaut lorsque c'est fait. – Mampersat

Questions connexes