我正在编写一个小的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"]));
}
任何有关幕后情况的帮助,以及为什么我得到上述例外都会非常受欢迎。
答案 0 :(得分:2)
使用dcomcnfg将网络服务帐户添加到DCOM的启动条件中。
在cmd中键入dcomcnfg
转到组件服务 - >我的电脑 - > Com安全 - > Lauch和激活权限 - >编辑默认 - >添加...
现在添加网络服务并允许所有权限。