通过appcmd更改IIS上的物理path未激活

我们遇到了一个IIS 7.5的问题,我们有一个简单的部署系统,它由以下部分组成:

创build一个新的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似乎正确更新(如果我检查IISpipe理器中的基本设置,path看起来是正确的),但运行的网站实际上是指向旧的位置。 我们设法“修复”的唯一方法是运行IIS重置。 回收有问题的应用程序池是不够的。

有时似乎甚至有必要重新启动,但我不是100%确定这是准确的(我自己并不总是解决问题)。

我使用Powershell和Webpipe理模块重写了脚本,希望appcmd中有一个小故障,但同样的问题发生。

Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"

有没有人经历过这样的事情? 有谁知道发生了什么事情,我能做些什么来防止这个问题? 进行IIS重置对我们来说并不是一个好的select,因为每次我们尝试在单个站点上部署更改时,都会影响服务器上的所有站点。

编辑:我们已经确定,在IISpipe理器中的站点(而不是应用程序池)的启动/停止解决了错误的物理path,但如果我停止使用appcmd的站点,更改物理path,然后启动它,我仍然遭受同样的问题。 我在空白处

  • 使用Powershell查询schtasks
  • 删除卷影副本远程
  • 当$ Group包含来自其他域的主体时,Get-ADGroupMember $ Group失败
  • PowerShell - 安装WindowsFeature(和家庭)在Windows 10上缺less?
  • 是否有可能使用PowerShell添加Windows服务依赖项?
  • 使用Windows Powershellpipe理EC2实例
  • 2 Solutions collect form web for “通过appcmd更改IIS上的物理path未激活”

    从IISpipe理器更改物理path是否可以正确运行?

    您可能想要尝试以下命令。 不同的语法,应该有相同的结果,但也许它在内部略有不同,导致IISselect更好(更好):

    C:\Windows\System32\inetsrv\appcmd.exe set app "www.site.com/" -[path='/'].physicalPath:"SITE_REV1\Site"

    应用程序池回收应该足够每个站点的基础。 这些是独立的过程。 文章和stream程经常使用iisreset。 是停止/启动一个网站的应用程序池一个选项? 这是一个单一的服务器解决scheme,你想尽量减less网站的停机时间? 有一个选项来禁用configuration更改回收。 然后你可以手动回收。 当问题发生时,applicationHost.config中列出了什么?

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.