3

我正在尝试设置我的网站设置项目的自动(每晚)安装。我可以在命令行上指定一些安装时间值;特别是,添加一个TARGETSITE值定义了我的新部署将转到的网站。

如何在 IIS7 安装中找到我的网站的元数据库密钥(例如“/LM/W3SVC/213548468”)?(我确实设置了 IIS6 兼容性,但我在metabase.xml文件中找不到任何关于我的站点的信息。)

此外,由于 Web 部署设置项目显然是过时的机制(我猜它们太容易使用了?),有人对我的夜间自动化部署有更好的想法吗?

4

2 回答 2

8

在 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 )

于 2010-07-20T15:25:36.990 回答
1

我对元数据库一无所知,但是从您的帖子中,我能够拼凑出以下内容:

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 的转义字符。

于 2011-08-17T20:19:37.630 回答