Fusion Pro という製品のライブラリを使用するコードがあります。いくつかの構成ファイルとデータ ファイルに基づいて、PDF ファイルが生成されます。例外がスローされることなく、出力が完全に欠如しているという一貫した結果が得られています。ただし、デバッグ時には、ローカル IIS で実行されているコードにデバッガーを接続し、行ごとにステップ実行することで、PDF を生成することができました。しかし、何も一貫していません。F10 の代わりに F11 を使用し、各行を「ゆっくりだが着実に」進むと、成功率が高くなるようです。残念ながら、コードをステップ実行しても常に 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;