IIS7网站的元数据库密钥在哪里?

时间:2010-07-19 22:38:25

标签: iis-7 installer continuous-integration metabase

我正在尝试设置我的网站设置项目的自动(夜间)安装。我可以在命令行中指定一些安装时值;特别是,添加TARGETSITE值可定义我的新部署将要访问的网站。

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

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

2 个答案:

答案 0 :(得分:9)

在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),您可以继续使用脚本或使用AHADMIN,这是我们新的底层COM配置API。

如果您使用PowerShell,我们还提供PowerShell提供程序(http://www.iis.net/download/PowerShell),在这种情况下应该是最好的。

此外,如果您确实想要打包内容和配置以及其他内容,例如注册表设置,COM对象,GAC dll等,您应该使用Web Deploy(http://www.iis.net/download/WebDeploy

答案 1 :(得分: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的转义字符。