为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows Server 2008)或IIS7.5(Windows Server 2008 R2)上来导出导入这些配置了.

当我们在IIS7或IIS7.5上创建站点时,IIS会为我们自动创建一个对应该站点的唯一的应用程序池.所以,我们要导入网站信息,就必须先导入应用程序池信息.

在IIS7+上导出所有应用程序池的方法:

%windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml

这个命令会将服务器上全部的应用程序池都导出来,但有些我们是我们不需要的,要将他们删掉.比如:

  • DefaultAppPool
  • Classic .Net AppPool

如果在导入时发现同名的应用程序池已经存在,那么导入就会失败.

导入应用程序池的方法: 

%windir%\system32\inetsrv\appcmd add apppool /in < c:\apppools.xml

这样就可以将全部的应用程序池都导入到另一个服务器中了.

导出全部站点的方法:

%windir%\system32\inetsrv\appcmd list site /config /xml > c:\sites.xml

同样,我们需要编辑sites.xml文件删除不需要的站点.如:

  • Default Website

导入站点的方法:

%windir%\system32\inetsrv\appcmd add site /in < c:\sites.xml

至此,导入工作完成了,看看两台服务器的IIS配置一样了吧.

另外,介绍下单独导出导入一个站点的方法

导出单独应用程序池:

%windir%\system32\inetsrv\appcmd list apppool “应用程序池名称” /config /xml > c:\myapppool.xml

黄色字体的就是要导出的应用程序池名称

导入单独应用程序池:

%windir%\system32\inetsrv\appcmd add apppool /in < c:\myapppool.xml

导出单独站点:

%windir%\system32\inetsrv\appcmd list site “站点名称” /config /xml > c:\mywebsite.xml

黄色字体的就是要导出的站点名称

导入单独站点:

%windir%\system32\inetsrv\appcmd add site /in < c:\mywebsite.xml

参考: http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/

05-11 00:49