GhostScriptSharp を使用してコンバーターを作成し、Web サイト経由で PDF ファイルのフルページ イメージを生成しましたが、GenerateOutput() を呼び出すたびに gsdll32.dll が (およびそれが生成/作業したファイルも) ロックされたままになっているようです。
私のコードスニペット:
GhostscriptSharp.GhostscriptWrapper.GenerateOutput(pdfFile, outputFile, settings);
これを呼び出した直後に、結果のバイトを Azure の BLOB に保存します。それが完了したら、私は電話しようとします:
try {
File.Delete(outputFile); // clean up if we can
}
catch { }
ファイルがまだロックされているため、例外がスローされます。
その後、再度ビルドしようとすると (F5 を使用するか、実際の状況でも)、gsdll32.dll がロックされているため、bin フォルダーにコピーできないというエラーが表示されます。
Ghostscript APIに対して GhostScriptSharp を確認したところ、すべてが正しい順序で呼び出されているようです。ただし、IIS が gsdll32.dll のロックを保持している理由を説明することはできません。
誰もこれに遭遇しましたか?同様の問題を抱えている人を見つけることができないようです。
更新:何らかの理由で最初に時間がかからなかった場合に備えて、上記のキャッチで ExitAPI/DeleteAPI をもう一度呼び出してみましたが、AccessViolationException
. API が適切に終了しているように見えますが、IIS がロックを適切に解放していないのではないでしょうか?