当我为我的webapp构建部署包时,该包包含一个archive.xml文件,其中包含以下内容:
<createApp
applicationPool=""
MSDeploy.applicationPool="1"
appExists="True"
MSDeploy.appExists="1"
... />
问题:
如何控制webapp安装到的应用程序池,以及在某些情况下,如何创建新的应用程序池?是否有我可以更改的VS设置,以控制上述输出或在部署时影响应用程序池的方式?
到目前为止,我发现的是:
1. MSBuild参数
根据one SO post的说法,我可以通过添加以下选项来告诉msbuild使用应用程序池,但我在生成的输出中看不到任何差异:
/p:IncludeAppPool=true
2. parameters.xml文件定制
Another post on setting the app pool for msdeploy似乎暗示我可以修改生成的parameters.xml
文件,这样我就可以将应用程序池名称指定为msdeploy的参数。这个文件存在于zip包中,所以不容易定制。如果我把它改成存档文件,那么文件就更容易访问了。
3.更改VS设置
Howto deploy a webapp页面似乎暗示我可能需要从IIS Express切换到IIS,然后启用一些复选框。在我的项目属性页面上,无论"Include IIS settings as configured in IIS Express“复选框设置(我当前未选中)如何,Include application pool settings used by this Web project
复选框都是禁用的。接下来,我将尝试切换到完整的IIS,看看这是否能给我更好的控制。
4.使用cscript创建应用池
看起来我也许能够create an app pool with a separate tool,但是我不确定它是否是TFS-only。这是一个我以前没有见过的工具,但它可能是一个功能强大的工具。
5. MSDeploy有一个appPoolConfig提供程序
MSDeploy的appPoolConfig provider看起来很有前途,因为我可以手动设置一个应用程序池,然后将其用作同步源,但至少只需要手动一次。
https://stackoverflow.com/questions/7690954
复制相似问题