Поставщики WMI с ASP.NET


Я пишу небольшую книгу. ASP.NET страница для обнаружения и отображения информации об установленных экземплярах SSRS на локальном сервере.

Я нашел следующий инструмент действительно полезным от Microsoft... WMI Code Creator

Код, который он генерирует, отлично работает при запуске из командной строки. Однако при попытке выполнить тот же код в моем ASP.NET страница, которую я получаю...

"Необработанная Ошибка Выполнения" Сведения Об Исключении : Система.Во время выполнения.Интерактивные службы.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"]));
    }

Любая помощь относительно того, что именно происходит за кулисами и, возможно, почему я получаю вышеуказанное исключение, будет очень приветствоваться.

1 4

1 ответ:

Добавьте учетную запись сетевой службы в условия запуска для DCOM с помощью dcomcnfg.

Введите dcomcnfg в cmd

Перейти службы компонентов ->Мой компьютер ->безопасность com ->запустить и активировать разрешения ->правка ->добавить...

Теперь добавьте сетевой сервис и разрешите ему все разрешения.