Web部署 – 部署msdeploy iisApp软件包时未设置应用程序池

Web部署 – 部署msdeploy iisApp软件包时未设置应用程序池,第1张

概述我遇到msdeploy没有同步站点的子应用程序的应用程序池信息的问题(例如,默认网站). 基本上我希望我可以创建webdeploy / msdeploy包作为多个开发分支的每晚构建过程的一部分,然后将这些特定于分支的包部署到服务器以进行烟雾测试.一切似乎都是合理的,但遗憾的是我找不到设置已部署软件包的iisApp打算使用的应用程序池的方法.我可以创建和部署包含appPoolConfig提供程序的包 我遇到msdeploy没有同步站点的子应用程序的应用程序池信息的问题(例如,默认网站).

基本上我希望我可以创建webdeploy / msdeploy包作为多个开发分支的每晚构建过程的一部分,然后将这些特定于分支的包部署到服务器以进行烟雾测试.一切似乎都是合理的,但遗憾的是我找不到设置已部署软件包的IISApp打算使用的应用程序池的方法.我可以创建和部署包含appPoolConfig提供程序的包以支持创建应用程序池本身,但如果我无法在我正在部署的应用程序上设置应用程序池,那么这将无用.

顺便说一句,我觉得我几乎重申了其他似乎相似的问题.使用appPoolconfig或appPoolExtension给出了各种答案,但我对这些没有好运.从我的阅读中,appPoolConfig用于同步应用程序池本身而不是应用程序池“已分配”到应用程序.顺便提一下,这种类型的同步 *** 作很有效.至于appPoolExtension,我不知道它打开时它实际上做了什么,因为我发现生成的包没有区别.

我可以使用一组简单的步骤重新创建问题,这些步骤仅使用msdeploy而没有WPP / webdeploy / msbuild,意图它应该只使用最低级别的工具:

Windows 8(注意:我也可以在Win 2008 R2上复制问题),安装IIS和Web Deploy 3.0.

>假设存在默认网站并安装了.NET 4.0,请创建一个名为TestPool的新应用程序池.
>在“默认网站”下创建名为TestApp的新应用程序,并将其应用程序池分配给在步骤1中创建的TestPool.
>打开命令提示符,对msdeploy进行路径访问.
>类型>

msdeploy -verb:sync -source:IISApp="Default Web Site/TestApp" -dest:package=c:\temp\testapp.zip,encryptPassword="password" -enablelink:AppPoolExtension

>现在我们有了一个软件包,我们可以从默认网站下删除TestApp,并删除作为初始应用程序创建的一部分创建的任何剩余物理文件夹.
>假设我们仍然将IIS中的TestPool应用程序池配置为可用池,请键入>

msdeploy -verb:sync -source:c:\temp\testapp.zip,encryptPassword="password" -dest:IISApp="Default Web Site/TestApp" -enablelink:AppPoolExtension

>转到IIS管理器并在“默认网站”下选择我们的TestApp.单击基本设置…并且应用程序池不是必需的TestPool,而是默认网站的默认池集.

任何帮助表示赞赏.

编辑:
只需在上面的步骤中运行一个变体,并在两个msdeploy命令行中将“IISApp”更改为“appHostConfig”,并保留应用程序池设置,以便从msdeploy的角度来看是成功的.但是,如果这是解决方案,那么如何通知VS 2012发布过程使用appHostConfig而不是issApp?

编辑:
在回答我自己的编辑时,这个答案有效:https://stackoverflow.com/a/12741525/739097.这引出了另一个问题,虽然关于如何在没有IIS的构建服务器上集成包创建,但我的想法是,首先根据所需的IIS创建模板包设置,动态参数等,但基本上没有内容.然后,构建过程将仅创建一个内容包,并将其与模板包同步,以创建用于部署的最终包.

解决方法 通过编辑,您的问题已经变得多方面,但我会一次解决一件事.

只有appHostConfig提供程序可以创建全局IIS对象,如站点和应用程序池.

IISApp只是createApp(可以将目录标记为应用程序)和contentPath(同步文件/文件夹)的组合.

要打包/同步appHostConfig提供程序而不是IISApp提供程序,您需要做两件事:

>将项目文件标记为使用具有有效URL的IIS(您可以通过定义WebPublishPipelineWAPProjectSettings来覆盖MSBuild文件以检查这些属性)
>在发布配置文件中声明IncludeIISSettings = true

但是,是的,这需要在构建服务器上安装IIS(或者,至少,构建服务器可以访问IIS实例).毕竟,MSDeploy是一个Web同步框架.

您可能做的是拥有一个包含您的网站定义的手动生成的包,另一个包含内容的生成期间生成的包.但是,请注意这一点,因为如果应用程序池包含高级选项并且该程序包不是由与部署目标相同的IIS版本生成的,则可能会遇到错误.

总结

以上是内存溢出为你收集整理的Web部署 – 部署msdeploy iisApp软件包时未设置应用程序池全部内容,希望文章能够帮你解决Web部署 – 部署msdeploy iisApp软件包时未设置应用程序池所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1064590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存