处理将打印作业发送到网络打印机的控制台应用程序。当控制台应用程序在我的本地计算机上运行时,打印机会打印出文档。当我们将控制台应用程序移动到虚拟机并在那里运行时,控制台应用程序会记录它成功打印文档但没有打印任何内容。打印机安装在VM上,我可以从记事本打印出文档。 Wben在vm上观察打印队列,它显示了作业假脱机,但很快就消失了。这是我们的代码:
public void Print(PrintRequest request)
{
Console.WriteLine($"Preparing to print on {request.FullPrinterName}");
Console.WriteLine($"Document Name: {request.DocumentName}");
Console.WriteLine($"Document Length: {request.DocumentContent.Length}");
var srv = new PrintServer($@"\\{ request.HostName}");
var printQueue = srv.GetPrintQueue(request.PrinterName);
var fileContent = request.DocumentContent;
Console.WriteLine($"Attempting to print {request.FullPrinterName}");
using (var job = printQueue.AddJob($"Print {request.DocumentName}"))
{
using (var stream = job.JobStream)
{
stream.Write(fileContent, 0, fileContent.Length);
}
Console.WriteLine($"Successfully printed {request.DocumentName}");
}
}
我的本地计算机正在运行Windows 7,虚拟机正在运行Windows Server 2012.任何想法在控制台应用程序在本地运行时与在vm上运行时打印的原因。