2013-12-20 73 views
2

不太清楚如何实现此目的,或者完全可能吗?我目前在IIS中定义了两个网站。使用脚本的IIS切换路径

  • MySite_Production
  • MySite_Staging

这些网站摸出两个物理文件夹的C盘上。

  • MySite_SlotA
  • MySite_SlotB

我使用的Web部署从Visual Studio 2012来推动任何新的部署,以MySite_Staging,这让我们说正在运行的MySite_SlotA。当我进行一些粗略检查时,我停止MySite_Staging然后我进入MySite_Production并将路径更改为MySite_SlotA。这与我可以在单个Web服务器上进行部署过程一样无缝。

我的问题是,我可以写一些类型的Powershell脚本或bat文件来切换路径吗?我对Powershell不太了解,但是如果它有可能实现这个例程的自动化,我们很高兴看到这一点。

+0

我不确定这是否是正确的方法。也许最好是考虑一个将登台文件移动到生产文件夹的脚本,而不是IIS在指向登台文件夹后一旦开心。更改路径后,生产文件夹会发生什么变化。你如何做备份或清理生产。 –

+0

将登台文件移动到生产文件夹将破坏正在运行的实例,并为使用该站点的用户抛出错误,直到脚本移动所有文件。当我改变从slotA到slotB的路径时,我保持slotA不变,所以如果出现任何问题,我可以回滚。 – QFDev

+0

切换会对现有用户造成类似的问题,但这是一个不同的争论。 –

回答

0

我知道这是一个necromancy恢复这一点,但我只是有一些类似的需要PowerShell来改变iis中的web应用程序的物理路径。 有一个很好的单行程,你可以使用(技术上2,因为你需要导入一个库)。

Import WebAdministration 
Set-ItemProperty 'IIS:\Sites\Default Web Site' -Name PhysicalPath -Value C:\Deploy\MyAwesomeWebsitePhysicalPath 

很显然,你需要改变Default Web SiteC:\Deploy\MyAwesomeWebsitePhysicalPath到任何适合您的情况。