Я запрашиваю Win32_Printer в коде ASP.net на IIS с использованием идентификатора пула приложений (Windows Server Server). На одном из серверов я получаю ошибку «Отказано в доступе». Код отлично работает на других серверах. Я сравнил два сервера, но не смог найти разницу в разрешениях. Какие разрешения мне нужно предоставить пользователю IIS App Identity для выполнения этого вызова? Вот фрагмент кода.
public static List<string> GetPrinterNames()
{
var query = new System.Management.ObjectQuery("SELECT * FROM Win32_Printer");
var searcher = new System.Management.ManagementObjectSearcher(query);
var printerList = new List<string>();
foreach (var dummyPrinterObject in searcher.Get())
{
printerList.Add(dummyPrinterObject["DeviceID"] as string);
}
return printerList;
}