我没有注意到这个post,但我正在寻找更多的细节。
我有两台运行Windows 2008 Server Web Edition的服务器,并且正在两台服务器上运行网站。 我希望能够将IIS设置反映到每个盒子上,以便在发生“服务器1”崩溃时,我可以login到“服务器2”并快速获取在“服务器1”上运行的所有站点。启动和运行。 这不是一个简单的镜像,因为我已经有“服务器2”上的网站需要保持运行,所以基本上我想从“服务器1”添加网站。
我相信我会对此有所评论,所以是的,我们的服务器可以处理增加的负载。 我也想远离讨论的DNS,所以请不要那样做。 我也意识到,我需要添加特定的IP到'服务器2'networking适配器,并没有问题,只要我可以减less其他手动任务,以获得更好的正常运行时间,并减less手动错误。
目前,我正在将数据库和代码备份到另一个数据库中,但正如您可以想象的那样,恢复是一个缓慢,手动且费力的过程,容易出错。
我正在寻找能够轻松恢复每个站点的所有设置。 例如:SSL证书,IP,站点代码的物理path,绑定,处理程序映射等等。我希望所有的应用程序池都可以恢复,就像使用正确的框架版本和pipe道模式的其他服务器一样。
据我所知,applicationHost.config容纳了大部分这些东西。 但是,如果我将站点添加到已经运行其他站点的Web服务器上,我会假设我无法replace这个文件,因为那意味着丢失了我所有的当前设置。 我也不太热衷于手动修改这个文件。
环顾四周后,我发现了微软的Web部署工具(learn.iis.net/page.aspx/346/web-deployment-tool/)的候选版本。 所以最后,现在你有一堆背景来这个问题:
有没有人有快速和(主要)自动添加网站到已经运行其他网站的IIS 7的任何经验? 有没有人用“appcmd add backup”方法和[Web Deployment Tool] [2]做到这一点,如果有的话,你有什么困难?
使用IIS7,它变得更容易。 你正在寻找的是“共享configuration”。 您可以在服务器的全局级别上进行设置。 有了这个,你可以像你所描述的那样有热的,或者热的。
在主服务器上,使用共享configuration下的“导出”。 这将保存服务器的机器密钥(不同于ASP.NET的machineKey)。 这可以确保所有encryption的数据都可以在新的服务器上准备好。 它也将保存applicationHost.config和administration.config。 一旦在第二台服务器上进行导入,applicationHost.config和administration.config就可以(而且应该)在两台服务器之间完全相同。
因此,您可以使用DFS-R自动保持configuration100%同步,或者使用类似robocopy的方式定期执行此操作,具体取决于您喜欢的工具。
您不需要在主服务器上指向不同的path。 只是为了第二台服务器而使用导出。
Web部署工具非常棒,但是对于你所说的,共享configuration更适合。
应该注意的是,证书不会存储在这些文件中,因此您需要在设置证书时手动执行这些证书,或者使用其他方式(如Web部署工具)来保持证书同步。
另一件您可以考虑的便宜但function强大的负载平衡器是微软的新ARR技术。 (应用程序请求路由)
我结束了使用微软的Web部署工具RC1 (MSDeploy)。 它非常细化,并有一个TON的选项。 它允许每个站点的备份和传输。 您可以使用命令行或GUI将站点备份到zip存档,也可以立即将站点同步/移动到另一台服务器(我认为这使用Web服务来传输和安装所有内容)。 这个工具保存所有的设置(绑定,ips,ssl证书,处理程序映射等)。 你可以看看依赖关系(在gac等代码),甚至移动数据库。
恢复从档案是一个快照。 我会推荐这个工具,任何人都希望能够迅速恢复网站。
我知道这听起来很疯狂,但为什么不把数据库移动到第三台服务器,并设置两个Web服务器上的所有网站,以便所有的网站都是多余的?