我有一些代码使用名为 Fusion Pro 的产品的库。基于一些配置和数据文件,它将生成一个 PDF 文件。由于完全没有输出而没有任何抛出的异常,我得到了一致的结果。但是,在调试时,我可以通过将调试器附加到在本地 IIS 中运行的代码并逐行执行来生成 PDF。没有什么是一致的。如果我使用 F11 而不是 F10 并通过每一行“缓慢但稳定”,它似乎有更高的成功率。不幸的是,即使单步执行代码,它也不总是生成 PDF。
我从来没有经历过代码每次都在相同的输入下表现得如此反复无常。
唯一的其他相关信息是此代码在另一个 asmx 服务中正常工作,它在特定域帐户下运行(需要特殊安全性),并且在 32 位模式下运行。
DLQueueClient client = new DLQueueClient();
DLQueueJob vdpQueueJob = new DLQueueJob();
string fileName = message.OutputFilePath;
var dataFilePath = CreateDataFile(fileName, message.DefFilePath, message.VariableDataContent, message.QTY);
var pdfFilePath = Path.Combine(new[] { message.OutputFilePath, dataFilePath.Replace(".txt", ".pdf") });
vdpQueueJob.Priority = priority;
vdpQueueJob.Queue = queueName;
string cmd = "\"" + Settings.FusionProExe + "\" \"" + dataFilePath + "\" \""
+ message.DiffFilePath + "\" \"" +
(isProof ? message.ProofConfigFilePath : message.PrintConfigFilePath) + "\" \""
+ pdfFilePath + "\"";
vdpQueueJob.CommandLine = cmd;
client.ConnectRemote(Settings.FusionProServer, Settings.FusionProUser, Settings.FusionProPassword, Settings.FusionProTimeout);
client.SubmitJob(vdpQueueJob, Settings.FusionProTimeout, true);
return pdfFilePath;