Отказано в доступе при запросе Win32_Printer в ASP.NET на IIS с использованием удостоверения пула приложений - PullRequest
0 голосов
/ 08 января 2019

Я запрашиваю 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;
    }

1 Ответ

0 голосов
/ 09 января 2019

Использование

public static System.Drawing.Printing.PrinterSettings.StringCollection InstalledPrinters { get; }

Пример показан на этой ссылке на документацию :

private void PopulateInstalledPrintersCombo()
{
    // Add list of installed printers found to the combo box.
    // The pkInstalledPrinters string will be used to provide the display string.
    String pkInstalledPrinters;
    for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++){
        pkInstalledPrinters = PrinterSettings.InstalledPrinters[i];
        comboInstalledPrinters.Items.Add(pkInstalledPrinters);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...