我希望复制我正在工作的iis网站的dev、demo1和demo2版本。我需要每个iis根据自己的代码库运行,但设置几乎相同。在Windows 7 Ultimate中,有没有简单的方法可以克隆我的dev iis到一个新站点,而不必完全重新配置它?为每个iis配置虚拟目录需要20分钟以上,因此这可以节省我很多工作。
查看 ApplicationHost.config 文件。 它应该位于“c:\windows\system32\inetsrv\config”下。 这是一个包含所有IIS配置数据的XML文件。 您可以手动修改此文件以快速创建您网站的副本。 只需确保首先备份,以防出现问题。
前往C:\Windows\system32\inetsrv\config
,复制ApplicationHost.config
文件。这是XML文件。打开它并进入<configuration><system.applicationHost><sites>
('configuration\system.applicationHost\sites
'),找到您要复制的站点(它将与IIS管理工具中的名称相同),然后复制该站点部分并将其粘贴到<sites>
下面,为新站点部分分配新的id和name属性,该属性尚未被使用过,例如:name="Test1" id="5"
.
<site name="Test" id="4" serverAutoStart="true">
<application path="/" applicationPool="Test">
<virtualDirectory path="/" physicalPath="C:\OnTheMove\tags\Release 2.1.7.7\Offline\OfflineRouteHandler" userName="administrator" password="[enc:AesProvider:K0YvJ9r+XXNP8VUrZlbCPQ==:enc]" />
</application>
<application path="/Offline_Tablet" applicationPool="Test">
<virtualDirectory path="/" physicalPath="C:\OTM\Offline\OnTheMoveOffline" userName="administrator" password="[enc:AesProvider:tT9uIWQDtIZTRnSMmx8XmIQv0lr7AbUXcuGby5qRZSo=:enc]" />
</application>
<application path="/OnTheMoveWebFiles" applicationPool="Test">
<virtualDirectory path="/" physicalPath="C:\OTM\Offline\OnTheMoveOffline\OnTheMoveWebFiles" userName="administrator" password="[enc:AesProvider:zZgL59H6ka6jehb9BPTaNR8ogdgc8S90c3vf8p6MjPc=:enc]" />
</application>
<application path="/eai_enu" applicationPool="Test">
<virtualDirectory path="/" physicalPath="C:\OTM\Offline\OfflineRouteHandler" userName="administrator" password="[enc:AesProvider:MfaNJz14gaJK5EjgIqhj4w==:enc]" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
会被复制。
<site name="Test1" id="5" serverAutoStart="true">
<application path="/" applicationPool="Test">
<virtualDirectory path="/" physicalPath="C:\OnTheMove\tags\Release 2.1.7.7\Offline\OfflineRouteHandler" userName="administrator" password="[enc:AesProvider:K0YvJ9r+XXNP8VUrZlbCPQ==:enc]" />
</application>
<application path="/Offline_Tablet" applicationPool="Test">
<virtualDirectory path="/" physicalPath="C:\OTMTrunk\Offline\OnTheMoveOffline" userName="administrator" password="[enc:AesProvider:tT9uIWQDtIZTRnSMmx8XmIQv0lr7AbUXcuGby5qRZSo=:enc]" />
</application>
<application path="/OnTheMoveWebFiles" applicationPool="Test">
<virtualDirectory path="/" physicalPath="C:\OTMTrunk\Offline\OnTheMoveOffline\OnTheMoveWebFiles" userName="administrator" password="[enc:AesProvider:zZgL59H6ka6jehb9BPTaNR8ogdgc8S90c3vf8p6MjPc=:enc]" />
</application>
<application path="/eai_enu" applicationPool="Test">
<virtualDirectory path="/" physicalPath="C:\OTMTrunk\Offline\OfflineRouteHandler" userName="administrator" password="[enc:AesProvider:MfaNJz14gaJK5EjgIqhj4w==:enc]" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
打开IIS管理工具,如果一切顺利,会有一个新的已停止的网站。
如果失败,请使用备份副本覆盖ApplicationHost.config
。
更新:根据评论,如果您正在使用64位环境编辑 ApplicationHost.config
,则需要使用以管理员模式运行的64位编辑器之一,例如记事本。
希望能为您节省一些时间。
ApplicationHost.config
的副本(分别位于system32
和SysWOW64
下),但它们链接到同一个文件。然而,当我添加了我需要克隆的应用程序池和站点的副本后,在IIS管理器中什么也没有改变——没有新的池,也没有新的站点。 - ajeh<site name="Reading List" id="13" serverAutoStart="true">
<application path="/" applicationPool="Reading List">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\reading_list\http" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:readinglist.jsgroup.local" />
</bindings>
</site>
复制网站(新):
<site name="Reading List" id="14" serverAutoStart="true">
<application path="/" applicationPool="Reading List 2">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\reading_list_2\http" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:readinglist2.jsgroup.local" />
</bindings>
</site>
3/. 在应用程序池节点中添加新的Apppools,配置与上面复制的站点相同,例如,我已经复制了“阅读列表”应用程序池,并将其重命名为“阅读列表2”
<applicationPools>
<add name="DefaultAppPool" autoStart="true" managedRuntimeVersion="v4.0">
<processModel identityType="ApplicationPoolIdentity" />
</add>
<add name="Reading List" autoStart="true" managedRuntimeVersion="v4.0" />
<add name="Reading List 2" autoStart="true" managedRuntimeVersion="v4.0" />
<!-- Other AppPools here -->
</applicationPools>
<location path="mywebsite.com"> <system.webServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <windowsAuthentication enabled="true" /> </authentication> </security> </system.webServer>
如果您使用不同的身份验证设置。 - MattC:\Inetpub\AdminScripts> adsutil.vbs copy <source> <destination>
C:\Inetpub\AdminScripts> adsutil.vbs copy w3svc/1 w3svc/556
w3svc/
符号的原因,如果您首先执行 adsutil.vbs ENUM /P W3SVC
,则更加明显。