printDoc.PrinterSettings.IsValid изменяет значения в зависимости от сервера - PullRequest
0 голосов
/ 14 июня 2019

У меня есть программа, которая печатает отчет напрямую на сетевые принтеры на основе желаемой функции.Мы с успехом протестировали рутину на нашем dev-сервере.Однако когда мы перевели программу в производство, программа не работает.printDoc.PrinterSettings.IsValid имеет значение false в производственной среде, но имеет значение true, когда выполняется с нашего сервера разработки.Наш сервер разработки находится в той же сети, что и наш производственный сервер.

Мы изначально думали, что что-то изменилось в коде, когда мы перевели его в производство.Поэтому мы переместили исполняемые файлы с рабочего сервера обратно на сервер разработки.Он все еще работает на сервере разработки.

Наша сетевая команда проверила настройки безопасности, и между этими двумя серверами нет различий.

Мы изменили код в рабочей среде, чтобы открыть диалоговое окно печати иПринтер, на который мы пытаемся печатать, находится в списке доступных принтеров, и печать работает нормально, если печать осуществляется через диалоговое окно печати. ​​

Мы изменили принтер, на который пытались вывести, но он не будет работать на нашем производстве.server.

        PrintDocument printDoc = new PrintDocument();
         printDoc.PrinterSettings.PrinterName = PrinterDef;
        if (!printDoc.PrinterSettings.IsValid)
        {
            MessageBox.Show("Error: cannot find the specified printer: " + PrinterDef);
        }
        else
        {
            printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
            m_currentPageIndex = 0;
            printDoc.Print();
        }

printDoc.PrinterSettings.IsValid всегда имеет значение true на сервере dev и всегда false на рабочем сервере

PrinterDef - имя сетевого принтера.

...