115

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

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

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

4

7 回答 7

146

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

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

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

  6. 它应该提示输入加密密码(如果您设置了它)并重置 IIS。

砰!去喝啤酒!

于 2009-01-29T20:55:17.507 回答
30

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

要创建包,请运行以下命令(将 Default Web Site 替换为您的网站名称):

msdeploy.exe -verb:sync -source:apphostconfig="Default Web Site" -dest:package=c:\dws.zip > DWSpackage7.log

要恢复包,请运行以下命令:

msdeploy.exe -verb:sync -source:package=c:\dws.zip -dest:apphostconfig="Default Web Site" > DWSpackage7.log
于 2009-02-01T02:04:41.530 回答
19

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

于 2011-08-29T16:56:21.437 回答
14

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

http://www.iis.net/extensions/WebDeploymentTool

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

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

于 2013-08-08T11:19:42.523 回答
3

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

于 2011-03-13T02:58:18.050 回答
3

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

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

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

我使用了一个合并工具(Beyond Compare),如果没有类似的东西,它将是一个巨大的 PITA - 但是使用一个好的 diff 工具(五分钟)非常容易。

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

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

applicationHost.config 有很多不同之处。有些条目的排序不同,但其他方面相同,因此您必须挑选每个差异并找出答案。

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

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

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

如果可以评论的人在帖子中提到这篇文章 - 它可能会帮助像我这样在一台服务器上拥有许多站点且配置复杂的其他人。

问候,

斯图尔特

于 2016-09-15T19:39:24.613 回答
2

在我的情况下,文件已经被复制,我找到了按照本指南中的步骤进行操作的最简单方法:https ://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between -multiple-iis-instances/

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

于 2018-04-19T16:01:13.350 回答