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

Posted

技术标签:

【中文标题】我的 IIS7 网站的元数据库密钥在哪里?【英文标题】:Where is the metabase key for my IIS7 web site? 【发布时间】:2010-07-19 22:38:24 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

ApplicationHost.config 文件正是我想要的!还要感谢关于新部署技术的建议 - 听起来我们应该研究 WebDeploy。【参考方案2】:

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

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

【讨论】:

以上是关于我的 IIS7 网站的元数据库密钥在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

IIS 7 配置路径

网站中的元标记

IIS7密钥配置方法

我在哪里可以找到IIS上已生成的机器密钥?

在哪里存储我的密钥以加密移动设备上的数据?

Veeam Backup & Replication 之 数据加密