2015-01-20 1 views
1

Я использую ghostscript pdf для преобразования изображений 'с использованием Cyotek.GhostScript.PdfConversion;' 'с использованием Cyotek.GhostScript;' В моем веб-проекте он хорошо работает при обработке одного запроса за раз, но когда он обрабатывает более одного запроса одновременно, он вызывает ошибку, например «Не удалось обработать команду GhostScript». мой проект - это веб-проект, здесь более одного процесса веб-сайт, как я могу решить эту проблему, я беспомощен, пожалуйста, помогите мне.Каким будет результат, когда несколько пользователей одновременно получат доступ к конвертеру pdf-изображений для ghostscript?

ответ

2

Если вы не используете Ghostscript с помощью командной строки (Process.Start), если родная библиотека Ghostscript не была составлена ​​с GS_THREADSAFE определить, только один экземпляр в то время (в процессе) поддерживается. Это означает, что вы можете обрабатывать только 1 PDF за раз. Я считаю, Cyotek.GhostScript использует Ghostscript API, а ваша собственная библиотека Ghostscript скомпилирована без GS_THREADSAFE.

В конце концов вы можете попробовать использовать Ghostscript.NET, который имеет возможность загружать собственную библиотеку Ghostscript из памяти. Таким образом, вы можете иметь несколько экземпляров собственной библиотеки Ghostscript, работающей одновременно с каждым из них в своем собственном контексте в рамках одного и того же процесса. (без необходимости GS_THREADSAFE).

+0

Спасибо, habjan, я уже пробовал с ghostscript.net, но он не знает, как правильно обрабатывать ghostscript.net для преобразования PDF в изображения, пожалуйста, скажите мне, как ghostscript.net конвертировать PDF в изображения –

+0

Вот один из способов как конвертировать PDF в изображение: https://github.com/jhabjan/Ghostscript.NET/blob/master/Ghostscript.NET.Samples/Samples/RasterizerSample.cs и вот еще один способ: https://github.com/ jhabjan/Ghostscript.NET/blob/master/Ghostscript.NET.Samples/Samples/ProcessorSample.cs – HABJAN

+0

Спасибо, habjan Я попробовал первое решение, я получил ошибку в следующей строке: _lastInstalledVersion = GhostscriptVersionInfo.GetLastInstalledVersion(); " исключение было «Ghostscript library not lnstalled exception». i была установлена ​​библиотека ghostscript со следующего сайта http://www.ghostscript.com/download/gsdnld.html –