c# - ASP.NET 的 WMI 提供程序

标签 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"]));
    }

任何关于幕后究竟发生了什么以及为什么我会收到上述异常的帮助都将非常受欢迎。

最佳答案

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

在cmd中输入dcomcnfg

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

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

关于c# - ASP.NET 的 WMI 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431918/

相关文章:

c# - 在没有反射的情况下迭代 C# 中对象的所有字段

asp.net - 更改 ASP.Net 版本时 IIS 服务不可用

ASP.NET MVC 与 WCF,缓存通知问题

c# - 不支持 EF6 上下文类型 'System.Data.Entity.Core.Objects.ObjectContext'

reporting-services - SSRS 有条件边界报告

c# - .NET - 将通用集合转换为数据表

c# - 根据上次点击更改按钮内容和文本

c# - 通用列表比较器不适用于 list<keyvaluePair>

sharepoint - SSRS 未授权 401 与 SharePoint

reporting-services - 报告服务 : Tablix RepeatColumnHeaders doesn't work on some reports