WMI提供程序与ASP.NET

时间:2010-12-13 18:02:06

标签: c# asp.net reporting-services wmi

我正在编写一个小的ASP.NET页面来检测和显​​示本地服务器上已安装的SSRS实例的信息。

我发现以下工具对Microsoft ... WMI Code Creator

非常有用

从命令行运行时,它生成的代码非常有用。但是,当我尝试在我的ASP.NET页面中执行相同的代码时,我得到了一个......

“未处理的执行错误” 异常详细信息:System.Runtime.InteropServices.COMException

这是代码......

    ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\Microsoft\\SqlServer\\ReportServer\\[INSTANCE_HERE]\\v10\\Admin", "SELECT * FROM MSReportServer_ConfigurationSetting");

    foreach (ManagementObject queryObj in searcher.Get())
    {
        Response.Write(string.Format("InstanceName: {0}", queryObj["InstanceName"]));
    }

我的猜测是通过IIS存在某种权限问题,但我要感谢一个明确的答案。我认为通过ASP.NET可能会对所有WMI提供程序产生问题,但以下代码在页面中工作正常...

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_OperatingSystem");

    foreach (ManagementObject queryObj in searcher.Get())
    {
        Response.Write(string.Format("Name: {0}", queryObj["Name"]));
    }

任何有关幕后情况的帮助,以及为什么我得到上述例外都会非常受欢迎。

1 个答案:

答案 0 :(得分:2)

使用dcomcnfg将网络服务帐户添加到DCOM的启动条件中。

在cmd中键入dcomcnfg

转到组件服务 - >我的电脑 - > Com安全 - > Lauch和激活权限 - >编辑默认 - >添加...

现在添加网络服务并允许所有权限。