Есть ли способ настроить проект Web-развертывания Visual Studio 2005 для установки приложения в именованный пул приложений, а не пул приложений по умолчанию для данного веб-сайта?
Изменение пула приложений через проект веб-развертывания
Ответ 1
Здесь есть хорошая статья, описывающая пользовательские действия: Блог ScottGu
На вопрос, который вы задали, ответили примерно на полпути комментариев "Райан", к сожалению, это в VB, но его не сложно перевести:
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
... Где APPPOOL поставляется в качестве аргумента в пользовательском действии.
Ответ 2
Вы можете использовать CustomAction для изменения IIS во время развертывания. Вот статья, как это сделать: Изменение информационных служб Интернета во время развертывания с помощью пользовательских действий
Пример в статье приведен в VB.Net и явно не показывает, как изменить пул приложений, но это должно быть легко понять.