2010-07-19 53 views
3

我正在尝试设置我的网站设置项目的自动化(夜间)安装。我可以在命令行上指定一些安装时间值;特别是,添加一个TARGETSITE值定义了我的新部署将要发往的网站。我的IIS7网站的元数据库密钥在哪里?

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

此外,由于网络部署安装项目显然是不合时宜的机制(我猜他们是否太容易使用?),有没有人有更好的想法,我的夜间自动部署?

回答

9

在IIS 7及以上的,我们不使用配置数据库了,而是移动到我们所有的设置保存里面的‘%WINDIR%\ SYSTEM32 \ INETSRV \设置\的applicationHost.config’一“的.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部署(http://www.iis.net/download/WebDeploy

+0

ApplicationHost.config文件正是我一直在寻找的!同时也要感谢关于新部署技术的建议 - 听起来我们应该看看WebDeploy。 – ladenedge 2010-07-20 16:02:00

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