У меня есть программа, которая печатает отчет напрямую на сетевые принтеры на основе желаемой функции.Мы с успехом протестировали рутину на нашем 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 - имя сетевого принтера.