有时候,我们可能有这个需求:某台服务器上的IIS配置了几十个网站项目,有没有一种方式可以导出这些配置,然后重装系统后(假设有这个业务场景)导入这些配置,避免一个一个的网站项目手动添加配置。答案是肯定的:有。
打开CMD,最好以管理员身份运行CMD。
具体导出命令如下所示:
%windir%\system32\inetsrv\appcmd list apppool "你的应用程序池名称" /config /xml > D:\yourAppPool.xml
具体导出命令如下所示:
%windir%\system32\inetsrv\appcmd list site "你的站点名称" /config /xml > D:\yourAppSite.xml
具体导入命令如下所示:
%windir%\system32\inetsrv\appcmd add apppool /in < D:\yourAppPool.xml
具体导入命令如下所示:
%windir%\system32\inetsrv\appcmd add site /in < D:\yourAppSite.xml
具体导出命令如下所示:
%windir%\system32\inetsrv\appcmd list apppool /config /xml > D:\yourAppPoolAll.xml
注意:由于我们导出的是所有的应用程序池,我们需要将yourAppPoolAll.xml中的DefaultAppPool和Classic .Net AppPool删除掉,避免在导入的时候报错(如果另外一台服务器的IIS中没有这2个应用程序池,请忽略该操作。如果在导入的时候还提示与其他节点已存在,请先编辑此文件,将已存在的节点删除再导入即可)。
具体导出命令如下所示:
%windir%\system32\inetsrv\appcmd list site /config /xml > c:\yourAppSiteAll.xml
注意:由于我们导出的是所有的站点,我们需要将yourAppSiteAll.xml中的Default Website删除掉,避免在导入的时候报错(如果另外一台服务器的IIS中没有这个站点,请忽略该操作。如果在导入的时候还提示与其他节点已存在,请先编辑此文件,将已存在的节点删除再导入即可)。
具体导入命令如下所示:
%windir%\system32\inetsrv\appcmd add apppool /in < D:\yourAppPoolAll.xml
具体导入命令如下所示:
%windir%\system32\inetsrv\appcmd add site /in < D:\yourAppSiteAll.xml