我的 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 网站的元数据库密钥在哪里?的主要内容,如果未能解决你的问题,请参考以下文章