Print.exe随机提供Unable初始化设备错误消息

时间:2017-08-01 11:44:23

标签: .net web-services iis networking printing

我们创建了一个IIS Web服务,启动print.exe进程,通过网络将打印作业提交到不同位置的共享打印机。通常,此过程正常, prn 正在成功发送到远程打印机。

但是,有时print.exe返回" 无法初始化设备\\ server_name \ shared_printer_name "我完全无法追踪发生了什么,我可以' t手动创建此案例。

你能帮我理解问题所在吗?我可以检查什么来理解和解决这个问题?

Web服务使用以下代码启动该过程:

try
{
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = "print.exe";
    startInfo.Arguments = "/D:\"" + printerName + "\" " + prnFilePath;
    startInfo.UseShellExecute = false;
    startInfo.RedirectStandardOutput = true;
    startInfo.CreateNoWindow = true;
    Process printProcess = Process.Start(startInfo);
    bool printSuccessful = false;
    while (!printProcess.StandardOutput.EndOfStream)
    {
        string line = printProcess.StandardOutput.ReadLine();
        log.Debug("Response of print process: " + line);
        if (line.Contains("currently being printed"))
        {
            printSuccessful = true;
        }
    }
    return printSuccessful;
}
catch (Exception ex)
{
    log.Error("printWithWindowsCommand failed. Could not print", ex);
    return false;
}

1 个答案:

答案 0 :(得分:0)

我发现在同一时间多次调用Web服务时会出现此问题。当同时使用两个请求调用Web服务时,其中一个请求成功,另一个请求失败。

为了解决这个问题,我更改了print.exe进程的起始部分,而不是这个,我只是 COPY / B 将文件发送到打印机假脱机。这可以由不同的进程同时使用而没有任何问题。