【发布时间】:2008-10-03 14:45:45
【问题描述】:
有没有办法配置 Visual Studio 2005 Web 部署项目以将应用程序安装到指定的应用程序池而不是给定网站的默认应用程序池中?
【问题讨论】:
标签: c# deployment windows-installer asp.net-2.0
有没有办法配置 Visual Studio 2005 Web 部署项目以将应用程序安装到指定的应用程序池而不是给定网站的默认应用程序池中?
【问题讨论】:
标签: c# deployment windows-installer asp.net-2.0
这里有一篇描述自定义操作的好文章: ScottGu's Blog
'Ryan' 在 cmets 中回答了你的问题,不幸的是它在 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 在自定义操作中作为参数提供。
【讨论】:
您可以在部署期间使用 CustomAction 来修改 IIS,这里有一篇文章如何做到这一点: Modifying Internet Information Services During Deployment with Custom Actions
文中的例子是在VB.Net中,并没有明确说明如何更改应用程序池,但应该很容易理解。
【讨论】: