IIS网站升级

Posted

技术标签:

【中文标题】IIS网站升级【英文标题】:IIS website upgrade 【发布时间】:2014-07-15 11:40:21 【问题描述】:

我正在构建一个网站安装程序,在安装阶段我需要在 IIS 下创建一个应用程序池和一个网站。

在安装/卸载阶段一切正常:IIS 已按预期配置。

现在我不知道如何在升级时获得良好的用户体验:实际上 setupkit 会覆盖网站上的所有配置(即端口绑定)。

是否可以指示 Wix 在更新期间不要更改网站/应用程序池配置?

代码如下:

<Directory Id="TARGETDIR" Name="SourceDir">      
  <Directory Id="INETPUB" Name="Inetpub">
  <Directory Id="INSTALLFOLDER" Name="MyWebSite">
  <Component Id="MyWebSiteIssConfiguration" Guid="MY-GUID">
    <Condition><![CDATA[NOT Installed]]></Condition>

    <iis:WebAppPool Id="MyWebSiteAppPool"
                  Name="[APP_POOL_NAME]"
                  Identity="localService"
                  ManagedPipelineMode="Integrated"
                  ManagedRuntimeVersion="v4.0" />

    <iis:WebSite Id="MyWebSiteWebsite" Description='[WEB_SITE_NAME]' Directory='INSTALLFOLDER' AutoStart='yes' StartOnInstall='yes'>
      <iis:WebAddress Id="AllUnassigned" Port="[WEB_SITE_PORT]" />
      <iis:WebApplication Id="MyWebSiteApplication" Name="[WEB_SITE_NAME][WEBSITE_ID]" WebAppPool="MyWebSiteAppPool"></iis:WebApplication>
      <iis:WebDirProperties Id="MyWebSiteWebDirProperties" AnonymousAccess="no" WindowsAuthentication="yes" />
    </iis:WebSite>

    <CreateFolder/>
  </Component>
</Directory>
</Directory>
</Directory>

【问题讨论】:

【参考方案1】:

最后我找到了适合我需要的解决方法。

首先,我将包含网站配置的组件(我的示例代码中的MyWebSiteIssConfiguration)标记为Permanent='yes':这样网站就永远不会被卸载。

我还在网站上设置了ConfigureIfExists='no',所以在升级期间网站上的配置保持不变。

【讨论】:

以上是关于IIS网站升级的主要内容,如果未能解决你的问题,请参考以下文章

iis7怎么升级

升级生产服务器运行环境来发布网站

IIS URL重写不正常404错误

在 Windows XP 上将 IIS 5.1 升级到 IIS 6

Nginx源码安装Nginx 平滑升级Nginx

服务器升级,网页样式加载失败