为什么LocalPrintServer.GetDefaultPrintQueue()在域中的计算机上失败

时间:2012-03-28 18:25:43

标签: .net printing

我有简单的Windows服务(登录:本地系统),启动/停止如下:

protected override void OnStart(string[] args)
{
    EventLog.WriteEntry(SOURCE, "Start");
    var queue = LocalPrintServer.GetDefaultPrintQueue();
}
protected override void OnStop()
{
    EventLog.WriteEntry(SOURCE, "Stop");
}

它适用于我的本地Win 7(x64),但无法在域中的Win 7(x64)上启动。 我看到异常:

  

无法启动服务。 System.Printing.PrintServerException:An   获取默认打印机时发生异常。 Win32错误:   系统找不到指定的文件。        在System.Printing.LocalPrintServer.GetDataFromServer(String property,Boolean forceRefresh)at at   System.Printing.LocalPrintServer.GetUnInitializedData(字符串[]   物业)   System.Printing.LocalPrintServer.get_DefaultPrintQueue()at   System.Printing.LocalPrintServer.GetDefaultPrintQueue()at   blablabla.Service1.OnStart(String [] args)at   System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(对象   状态)

有人可以帮忙吗? 谢谢。

P.S。我想LocalSystem应该有个人资料。我知道我的默认打印机不是LocalSystem的默认打印机......

1 个答案:

答案 0 :(得分:0)

本地系统没有个人资料......

我认为您应该处理缺少默认打印机......以及默认打印队列。

http://msdn.microsoft.com/it-it/library/system.printing.localprintserver(v=vs.110).aspx

getprintqueues这样的方法看起来很有意思......