编程检查IIS7兼容性角色是否在IIS7中启用/禁用
您可以检查注册表读取值
HKEY_LOCAL_MACHINE\Software\Microsoft\InetStp\Components\WMICompatibility
,或者可以输出中servermanagercmd的内容到一个XML文件,并解析文件寻找IIS6兼容性组件
ServerManagerCmd -query [SaveFile.xml]
如果您在R2上执行此操作,servermanagercmd现在已被弃用,所以您可能想使用powershell来实现相同的检查。 下面是一些PowerShell的例子,在这种情况下远程完成http://www.techmumbojumblog.com/?p=217
从以前的答案的WMI方法可能是一样好,espcialy如果你有更多的配置任务,对IIS进行,验证了兼容性工具后安装。
顺便说一句,如果你发现没有被兼容组件处理的配置设置,这里是我发现从C#这样做,我在配置通过WMI早在IIS6在网站级别和下(网站运行良好,虚拟目录和池),但为了配置Web服务器级别,我必须使用iis7安装的api,System32 \ inetsrv中的Microsoft.Web.Administration.dll。
using Microsoft.Web.Administration;
您可能可以通过以编程方式查询IIS7的WMI提供程序来完成此操作。 http://learn.iis.net/page.aspx/162/managing-sites-with-iis-7039s-wmi-provider/
我不知道你是否可以通过powershell做到这一点。
任何解决方案使用PowerShell? – Kiquenet 2014-01-13 11:48:39
请有人给出一个很好的答案! 动机,这里是一个非常不好回答=)
// Ok, this is stupid, but I can't find any other way to do this
// Detect whether we're in integrated mode or not
#warning GIANT HACK FOR IIS7 HERE
try
{
var x = HttpContext.Current.CurrentNotification;
_isIntegratedMode = true;
}
catch (PlatformNotSupportedException)
{
_isIntegratedMode = false;
}
catch (NullReferenceException)
{
_isIntegratedMode = true;
}
这正是我们的代码目前确实摸不着头脑(是的,我知道这是我很不 - 因此警告)
http://www.techmumbojumblog.com/?p=217获取404错误 – Kiquenet 2014-01-13 10:18:23
使用Powershell的最终解决方案? – Kiquenet 2014-01-13 11:49:05