【发布时间】:2014-06-17 22:08:36
【问题描述】:
从作为 Windows 服务(32 位)托管的服务打印会引发异常。
例外: PrintTicket 提供程序无法绑定到打印机。 Win32错误:-2147467231
当作为控制台应用程序(32 位)托管时,该方法工作正常,但是当作为 Windows 服务托管时,它会引发异常。
private void Print(PrintJob printJob, string templateXaml)
{
Thread t = new Thread(() =>
{
try
{
dynamic labelDataObject = CreateDynamicObject(printJob.LabelData);
PrintQueue queue = GetPrintQueue(printJob.PrintQueue);
PrintTicket ticket = queue.DefaultPrintTicket;
ticket.PageOrientation = PageOrientation.Portrait;
FixedPage page = RenderPage(new Size(ticket.PageMediaSize.Width.Value, ticket.PageMediaSize.Height.Value), labelDataObject, templateXaml);
XpsDocumentWriter xpsWriter = PrintQueue.CreateXpsDocumentWriter(queue);
xpsWriter.Write(page, ticket);
}
catch
{
throw;
//TODO: Logging and notification
}
});
t.IsBackground = false;
t.SetApartmentState(ApartmentState.STA);
t.Priority = ThreadPriority.AboveNormal;
t.Start();
t.Join();
}
我尝试在管理员、当前登录用户和本地系统帐户下运行该服务。到目前为止没有任何效果。请帮忙:/
【问题讨论】:
-
您是否尝试过搜索? Is it a 64-bit machine?
-
错误代码 0x800004021 (-2147467231) 转换为“不支持尝试的操作。”。