如何将IIS 7站点迁移到另一台服务器?

时间:2009-01-29 20:22:39

标签: deployment iis-7 migrate

我想知道将网站移动到另一台服务器的最佳做法是什么(以及所有设置等)。

  • 在新服务器上手动重新创建网站(由于显而易见的原因而无法维护)
  • 复制applicationHost.config设置文件
  • 使用appcmd进行备份和恢复
  • 使用MSDeploy在新计算机上发布站点
  • 使用第三方工具

只是想知道别人的经历是什么。

7 个答案:

答案 0 :(得分:121)

我想在IIS管理器中导出您的服务器配置:

  1. 在IIS管理器中,单击“服务器”节点
  2. 转到“管理”
  3. 下的共享配置
  4. 点击“导出配置”。 (如果您要通过互联网发送密码,可以使用密码,如果您只是通过USB密钥移动它们,那么请不要冒汗。)
  5. 将这些文件移至新服务器

    administration.config
    applicationHost.config
    configEncKey.key 
    
  6. 在新服务器上,返回“共享配置”部分并选中“启用共享配置”。在这些文件的物理路径中输入位置并应用它们。

  7. 应提示输入加密密码(如果设置)并重置IIS。
  8. BAM!去喝啤酒吧!

答案 1 :(得分:21)

MSDeploy可以迁移IIS团队推荐的所有内容,配置等。 http://www.iis.net/extensions/WebDeploymentTool

答案 2 :(得分:17)

这是一个有用的网站,介绍如何使用appcmd导出/导入网站配置。 http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/

答案 3 :(得分:12)

Microsoft Web Deploy v3 可以导出和导入所有文件,配置设置等。它将所有文件放入zip存档中,准备在新服务器上导入。它甚至可以升级到更新版本的IIS(v7-v8)。

<强> http://www.iis.net/extensions/WebDeploymentTool

安装工具后 在IIS管理控制台中右键单击您的服务器或网站,选择“部署”,“导出应用程序...”并运行导出。

在新服务器上,以相同的方式导入导出的zip存档。

答案 4 :(得分:3)

使用appcmd导出一个或所有站点,然后重新导入新服务器。可能是iis7.0或7.5使用appcmd导出时,密码会被解密,然后重新导入,然后重新加密。

答案 5 :(得分:3)

由于缺乏代表,我无法评论线程。另一位评论者表示他们无法从较低版本迁移到更高版本的IIS。如果您不合并某些文件,则会出现这种情况,但如果您这样做,则可以使用chews发布的答案将我的IIS 7.5站点迁移到IIS 8.0。

创建导出时(II7.5),有两个关键文件(administration.config和applicationHost.config),它们引用了IIS7.5服务器上的资源。例如,DLL将使用特定于7.5的公钥和版本引用。这些在IIS8服务器上是不一样的。功能配置也可能不同(我确保我的相同)。 8中有一些新功能,7.5中永远不会存在。

如果你足够勇敢地合并这两个文件 - 它会起作用。我不得不卸载IIS一次,因为我搞砸了,但第二次得到了它。

我使用了一个合并工具(超越比较)而没有相应的东西它将是一个巨大的PITA - 但是使用一个好的差异工具(五分钟)非常容易。

要进行合并,需要在尝试导入之前对导出的7.5个文件区分8.0文件。在大多数情况下,8.0文件需要覆盖导出的7.5文件中的服务器特定内容,同时保留站点/应用程序池特定的内容。

我发现administration.config几乎完全相同,没有许多条目的版本信息。这个很容易。

applicationHost.config有很多不同之处。有些条目的排序方式不同,但在其他方面完全相同,因此您必须检查每个差异并找出它。

在合并之前,我将7.5导出文件放在System32 \ inetsrv \ config \ Export文件夹中。

我将文件夹System32 \ inetsrv \ config合并到文件夹System32 \ inetsrv \ config \ Export中,用于我上面提到的两个文件。除了站点特定的标签/元素(例如applicationPools,customMetadata,sites,authentication)之外,我推送了FROM文件中的所有内容。特别值得注意的是,我还必须保留许多特定于站点的“位置”标记块,但新服务器有自己的“位置”标记块,必须保留服务器特定的默认值。

最后,请注意,如果您使用服务帐户,这些缓存的密码都是垃圾密码,必须为您的应用池重新输入。我的网站最初都没有工作,但所需要的只是重新输入我所有应用程序池的密码,而且我已启动并运行。

如果可以发表评论的人提到这篇帖子,那么它可能会帮助像我这样的人在一台配置复杂的服务器上有很多网站。

此致

斯图尔特

答案 6 :(得分:0)

就我而言,文件已经被复制,我找到了遵循本指南中步骤的最简单方法:https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between-multiple-iis-instances/

我导出了AppPools /网站,将xml文件复制到目标服务器,然后导入AppPools然后复制到网站。工作得很好。这也是这个问题的另一个很好的选择。