我正在尝试设置我的网站设置项目的自动(每晚)安装。我可以在命令行上指定一些安装时间值;特别是,添加一个TARGETSITE
值定义了我的新部署将转到的网站。
如何在 IIS7 安装中找到我的网站的元数据库密钥(例如“/LM/W3SVC/213548468”)?(我确实设置了 IIS6 兼容性,但我在metabase.xml文件中找不到任何关于我的站点的信息。)
此外,由于 Web 部署设置项目显然是过时的机制(我猜它们太容易使用了?),有人对我的夜间自动化部署有更好的想法吗?
我正在尝试设置我的网站设置项目的自动(每晚)安装。我可以在命令行上指定一些安装时间值;特别是,添加一个TARGETSITE
值定义了我的新部署将转到的网站。
如何在 IIS7 安装中找到我的网站的元数据库密钥(例如“/LM/W3SVC/213548468”)?(我确实设置了 IIS6 兼容性,但我在metabase.xml文件中找不到任何关于我的站点的信息。)
此外,由于 Web 部署设置项目显然是过时的机制(我猜它们太容易使用了?),有人对我的夜间自动化部署有更好的想法吗?
在 IIS 7 及更高版本中,我们不再使用元数据库,而是移至“.config”模型,我们将所有设置存储在“%windir%\system32\inetsrv\config\applicationHost.config”中,这就是您将找到您应用的所有信息和设置。如果您启用 IIS 6 兼容性,我们将通过将它们直接转换为新的 ApplicationHost.config 来运行所有命令。
如果您使用托管代码可能最好的解决方案是使用 Microsoft.Web.Administration ( http://blogs.msdn.com/b/carlosag/archive/2006/ 04/17/microsoftwebadministration.aspx),其中包括一个名为 ServerManager 的类,允许您设置所需的一切。
如果您使用脚本 (vbscript/jscript),您可以继续使用您的脚本,或者使用我们新的底层 COM 配置 API AHADMIN。
如果您使用 powershell,我们还有一个 PowerShell 提供程序 ( http://www.iis.net/download/PowerShell ) 提供在这种情况下应该是最好的。
此外,如果您真的想打包内容和配置以及注册表设置、COM 对象、GAC dll 等其他内容,您应该使用 Web Deploy ( http://www.iis.net/download/WebDeploy )
我对元数据库一无所知,但是从您的帖子中,我能够拼凑出以下内容:
import-module WebAdministration
$site = get-website | Where-object {$_.Name -eq "SiteName"}
$id=$site.ID
setup.msi /passive TARGETAPPPOOL=`"ASP.NET v4.0`" TARGETSITE="/LM/W3SVC/"$id
反引号是 powershell 的转义字符。