我正在编写一个小的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存在某种权限问题,但我要感谢一个明确的答案.我认为这可能是所有WMI提供程序通过ASP.NET的问题,但以下代码在页面中工作正常…
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 Security – > Lauch和激活权限 – >编辑默认 – >添加…
现在添加网络服务并允许所有权限.