我们在IIS 7.5上遇到了一个问题,其中有一个简单的部署系统,该系统包含以下内容:
创建一个新的webroot的zip文件,其中包含三个文件夹:
Api
Site
Manager
该文件解压缩到一个新文件夹中(假设我们将其称为“ SITE_REV1”),其中包含一个脚本,该脚本调用以下内容(每个webroot之一):
C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"
这通常可以工作9/10次。在某些情况下,webroot似乎已正确更新(如果我检查了IIS Manager中的基本设置,则该路径看起来正确),但是正在运行的站点实际上指向的是旧位置。我们设法“修复它”的唯一方法是运行IIS重置。回收有问题的应用程序池还不够。
有时似乎甚至有必要进行重新启动,但是我不是100%确信这是正确的(并不是总是我自己来解决问题)。
我使用Powershell和Web-Administration模块重写了脚本,希望在appcmd中出现故障,但是会发生相同的问题。
Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"
有没有人经历过这样的事情?有人对正在发生的事情有什么头绪,而我可以做些什么来防止此问题?对我们来说,IIS重置并不是一个好选择,因为每次我们尝试在单个站点上部署更改时,这都会影响服务器上的所有站点。
编辑:我们已经确定IIS管理器中站点的启动/停止(不是应用程序池)可以解决错误的物理路径,但是如果我使用appcmd停止站点,更改物理路径,然后启动它,则我仍然会遭受同样的问题。我一片空白...