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

Deployment 如何将IIS 7站点迁移到另一台服务器?,deployment,iis-7,migrate,Deployment,Iis 7,Migrate,我想知道将网站移动到另一台服务器(以及所有设置等)的最佳实践是什么 在新服务器上手动重新创建站点(由于明显原因不可维护) 复制applicationHost.config设置文件 使用appcmd进行备份和恢复 使用MSDeploy在新计算机上发布站点 使用第三方工具 只是想知道其他人的经历。我想在IIS管理器中导出您的服务器配置: 在IIS管理器中,单击服务器节点 转到“管理”下的共享配置 单击“导出配置”。(如果您通过互联网发送密码,您可以使用密码,如果您只是想通过USB密钥移动密码,那

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

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

只是想知道其他人的经历。

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

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

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

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

  • 砰!去喝杯啤酒

    MSDeploy可以迁移所有内容、配置等。这是IIS团队的建议

    要创建包,请运行以下命令(用您的网站名替换默认网站):

    要还原包,请运行以下命令:

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

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

    这里有一个关于使用appcmd导出/导入站点配置的有用网站。

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

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


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

    由于缺少代表,我无法对线程进行注释。另一位注释者表示他们无法从较低版本的IIS迁移到较高版本的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——但是使用一个好的diff工具(五分钟)非常简单

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

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

    applicationHost.config还有很多不同之处。有些条目的顺序不同,但在其他方面是相同的,因此您必须从每个差异中进行挑选并找出原因

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

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

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

    如果有人谁可以评论提到这篇文章下线程-它可能会帮助像我这样的人谁有一个复杂的配置服务器上的许多网站

    问候,


    斯图尔特

    在我的例子中,文件已经被复制,我找到了遵循本指南中步骤的最简单方法:


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

    谢谢比尔——我看到了这个工具,但我很谨慎,因为它仍处于测试阶段。2016年,这仍然是“最先进的”,但MSDEPLOY 3.6确实很难使用。我希望他们在某一点上有所创新。MSDeploy没有为我们正确地传输站点。我们最终得到了一个包含我们每个站点的应用程序的站点,因此整个结构是错误的。当然,这是推荐的方式,并且文档对于用户掌握必要的步骤和需要注意的关键点是至关重要的。互联网上的大多数问题已经在文章中得到了回答。如果人们在这方面花费了足够的时间,那么WebDeploy并不是一个“困难”的工具
    msdeploy.exe -verb:sync -source:package=c:\dws.zip -dest:apphostconfig="Default Web Site" > DWSpackage7.log