当我为webapp构建部署包时,该包包含一个archive.xml文件,其中包含以下内容:
<createApp
applicationPool=""
MSDeploy.applicationPool="1"
appExists="True"
MSDeploy.appExists="1"
... />
Run Code Online (Sandbox Code Playgroud)
如何控制安装webapp的应用程序池,并在某些情况下创建新的应用程序池?是否有VS设置我可以更改以控制上述输出或以其他方式影响应用程序池在部署时的方式?
根据一篇SO帖子,我可以通过添加以下选项告诉msbuild使用应用程序池,但我看不出生成的输出有任何区别:
/p:IncludeAppPool=true
Run Code Online (Sandbox Code Playgroud)
关于为msdeploy设置应用程序池的另一篇文章似乎暗示我可能能够修改生成的parameters.xml文件,以便我可以将应用程序池名称指定为msdeploy的参数.此文件存在于zip包中,因此不容易自定义.如果我将其更改为存档,则文件更容易访问.
该HOWTO部署web应用程序页面似乎暗示我可能需要从IIS快速切换到IIS,然后再启用一些复选框.在我的项目属性页面上,Include application pool settings used by this Web project无论"在IIS Express中配置了包含IIS设置"复选框设置(我目前尚未选中),都会禁用该复选框.我将尝试切换到下一个完整的IIS,看看是否能让我更好地控制.
看起来我可以用一个单独的工具创建一个应用程序池,但我不确定它是否只是TFS.这是我以前从未见过的工具,但它可能是一个功能强大的工具.
MSDeploy的appPoolConfig提供程序看起来很有前途,因为我可以手动设置一个应用程序池,然后将其用作同步源,但至少它只是手动一次.
我一直在浏览几十个网站,以帮助我使用MsDeploy将Web服务部署到IIS.我需要创建应用程序,修改应用程序池并启用协议,并更新appSetting(包含连接字符串,不要问我原因).
我可以做所有这些,除了应用好的应用程序池.
这是我添加到项目中的parameters.xml文件:
<parameters>
<parameter tags="IisApp" defaultValue="Default Web Site/MyWebService" name="IIS Web Application Name">
<parameterEntry match="@defaultValue" scope="IisApp" kind="ProviderPath"/>
<parameterEntry match="@defaultValue" scope="setAcl" kind="ProviderPath"/>
</parameter>
<parameter name="Configuration Connection String" defaultValue="Some real Connection String in there" tags="">
<parameterEntry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='ConfigurationSQLConnectionString']/@value" />
</parameter>
<parameter name="Application Pool" defaultValue="MyOwnAppPool" description="Application pool for this site">
<parameterEntry kind="DeploymentObjectAttribute" scope="application" match="/application/@applicationPool" />
</parameter>
</parameters>
Run Code Online (Sandbox Code Playgroud)
这是我生成包的方式:
MsBuild MyWebService.csproj /T:Package /P:PackageLocation="c:\somewhere\package.zip" /P:IncludeAppPool=true /P:IncludeIisSettings=true
Run Code Online (Sandbox Code Playgroud)
这是生成的archive.xml文件:
<sitemanifest MSDeploy.ObjectResolver.dirPath="Microsoft.Web.Deployment.DirPathObjectResolver" MSDeploy.ObjectResolver.filePath="Microsoft.Web.Deployment.FilePathObjectResolver">
<appHostConfig path="Default Web Site/MyWebService" MSDeploy.path="2" MSDeploy.MSDeployLinkName="Child1" MSDeploy.MSDeployKeyAttributeName="path" MSDeploy.MSDeployProviderOptions="some stuff">
<application path="/MyWebService" MSDeploy.path="2" applicationPool="DefaultAppPool" MSDeploy.applicationPool="1" …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用MSDeploy部署网站,并使用其中的一些构建团队...
/p:DeployOnBuild
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=InProc
/p:MSDeployServiceURL=localhost
/p:DeployIISAppPath="Default Web Site"
Run Code Online (Sandbox Code Playgroud)
有没有办法在自定义应用程序池中设置此网站?