IIS + WMI: невозможно получить всю информацию WMI - PullRequest
0 голосов
/ 09 сентября 2010

Я пытаюсь создать веб-сервис (WCF) для получения информации о моем сервере. Я создал класс для WMI, который может получать информацию о процессорах, оперативной памяти, дисках и т. Д. *

В visual studio служба работает нормально, но когда я развертываю службу на IIS, я получаю всю информацию ... Кроме одной! У меня есть один жесткий диск с двумя разделами (C & D), при развертывании в IIS возникает ошибка, когда я пытаюсь получить «Размер» второго раздела. Код прекрасно работает с консольным приложением. Я пробовал также с простым веб-сайтом ASP.Net вместо WCF, тоже не работает.

Вот код, который я использую:

    ConnectionOptions aCO { get; set; }
    ManagementScope aMS { get; set; }

    public Wmi()
    {
        aCO = new ConnectionOptions();
        aMS = new ManagementScope("\\\\localhost", aCO);
    }
    .....
    ObjectQuery aQ = new ObjectQuery("select Name,Size,FreeSpace from Win32_LogicalDisk where DriveType=3");
    .....
    foreach (ManagementObject oReturn in aRToSet)
        {
                string letter = oReturn["Name"].ToString();
                long size = long.Parse(oReturn["Size"].ToString());
        }

Я провел несколько тестов, служба работает на моем компьютере (Windows 7 с IIS 7.5), но не на моем сервере (Windows Server 2008).

Может ли кто-нибудь дать мне какую-нибудь подсказку?

Спасибо.

1 Ответ

0 голосов
/ 17 сентября 2010

Я нашел, что было не так:

Это была проблема безопасности, единственный пользователь, который мог иметь доступ ко второму диску (D :), был супер-администратором. Я просто добавляю права администратора и группы пользователей, теперь я могу получить информацию!

...