Ändern des Anwendungspools über ein Web-Bereitstellungsprojekt
-
03-07-2019 - |
Frage
Gibt es eine Möglichkeit, ein Visual Studio 2005 Web Deployment Project zu konfigurieren, dass eine Anwendung in ein benannten Application Pool, anstatt den Standard-App-Pool für eine bestimmte Website zu installieren?
Lösung
Es ist ein guter Artikel beschreibt benutzerdefinierte Aktionen hier: ScottGu Blog
Die Frage, die Sie gefragt wird, auf halbem Wege durch die Kommentare von ‚Ryan‘, leider ist es in VB, aber es sollte nicht schwer zu übersetzen beantwortet über
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
... Wo AppPool als Argument in der Custom Action geliefert.
Andere Tipps
Sie können eine Custom verwenden IIS während der Bereitstellung zu ändern, Hier ist ein Artikel, wie es geht: Ändern von Internet-Informationsdienst während des Einsatzes mit benutzerdefinierten Aktionen
Das Beispiel in dem Artikel ist in VB.Net, und zeigt nicht explizit, wie der Application Pool zu ändern, aber es sollte es herauszufinden einfach sein.