首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过VS和MSDeploy设置控制用于部署的AppPool

如何通过VS和MSDeploy设置控制用于部署的AppPool
EN

Stack Overflow用户
提问于 2011-10-08 01:48:36
回答 1查看 10.1K关注 0票数 21

当我为我的webapp构建部署包时,该包包含一个archive.xml文件,其中包含以下内容:

代码语言:javascript
复制
<createApp
    applicationPool=""
    MSDeploy.applicationPool="1"
    appExists="True"
    MSDeploy.appExists="1"
    ... />

问题:

如何控制webapp安装到的应用程序池,以及在某些情况下,如何创建新的应用程序池?是否有我可以更改的VS设置,以控制上述输出或在部署时影响应用程序池的方式?

到目前为止,我发现的是:

1. MSBuild参数

根据one SO post的说法,我可以通过添加以下选项来告诉msbuild使用应用程序池,但我在生成的输出中看不到任何差异:

代码语言:javascript
复制
/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看起来很有前途,因为我可以手动设置一个应用程序池,然后将其用作同步源,但至少只需要手动一次。

EN

回答 1

Stack Overflow用户

发布于 2013-08-01 18:26:12

当我从Visual Studio2010WCF中进行web部署时,我遇到了麻烦,我正在创建c# sp1服务,详情请参阅:http://technologyriver.blogspot.fi/2012/02/prerequisites-check-windows-7.html

我得到了错误:错误1Web部署任务失败。(您尝试使用的应用程序池的'managedRuntimeVersion‘属性设置为'v2.0’。此应用程序需要‘v4.0’。)0%0 WcfService3

因为我没有完整的IIS,但有IIS Express,所以我不能去找经理。在几次约会之后。谷歌和微软。我盯着自己的脸,找到了解决方案。

修复方法是使用显式正确的web服务名称,而不是示例中使用的默认名称。

解决方案:首先打开IIS Express配置文件%userprofile%\documents\IISExpress\config\applicationhost.config

检查你在其中的默认站点,在我的例子中是:

代码语言:javascript
复制
<site name="WebSite1" id="1" serverAutoStart="true">
  <application path="/" applicationPool="Clr4IntegratedAppPool">
    <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
  </application>
  <bindings>
    <binding protocol="http" bindingInformation=":8080:localhost" />
  </bindings>
</site>

确保站点的应用程序池是正确的,在我的示例中是"Clr4IntegratedAppPool“

在部署阶段,按照链接的博客中的说明,将一些“默认网站/MyApp”用作站点/应用程序。

对我来说,在站点配置中看到的正确设置是"WebSite1“,而且部署中的服务url需要端口绑定,在我的例子中是"localhost:8080”。

如果您觉得需要更多定义,可以在配置中使用自己的池创建一个全新的站点,并在部署中使用它。可以在这里找到该方向的一些示例:http://www.philliphaydon.com/2012/06/multiple-iisexpress-sites-profiled-with-dottrace/

希望这能帮助你们中的任何人避免使用搜索机器的令人沮丧的约会。

最好的问候,Petteri Kujala

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7690954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档