Метод преобразования в PDF работает только один раз
Я использую pechkin.synchronized
конвертировать из HTML в PDF. При первом запросе http он работает нормально, но после этого он застревает в методе convert и после этого ничего не делает.
Вот мой метод действия контроллера:
public ActionResult ToPdf(int id)
{
var order = _orderBll.GetById(id);
var viewHtml = order.Body;
byte[] pdfBuf = new SimplePechkin(new GlobalConfig()).Convert(viewHtml);
return File(pdfBuf, "application/pdf");
}
1 ответ
Решение
Попробуйте использовать SynchronizedPechkin.
Увидеть:
- Почему мое веб-приложение зависло от приведенного ниже примера простого в использовании кода?
- Почему мое веб-приложение зависает / падает после того, как я начал использовать SynchronizedPechkin
К сожалению, Печкин - мертвый проект и у него много нерешенных проблем. Вы можете избежать этого с помощью ThreadSafeConverter, созданного Вупечкиным, и Печкин продолжает там развиваться.
Пример:
IConverter converter =
new ThreadSafeConverter(
new PdfToolset(
new Win32EmbeddedDeployment(
new TempFolderDeployment())));
// Keep the converter somewhere static, or as a singleton instance!
// Do NOT run the above code more than once in the application lifecycle!
byte[] result = converter.convert(document);
У меня была такая же проблема с моим заявлением тоже. Поэтому я скачиваю Синхронизированный Печкин из менеджера Nuget. Ваш код будет выглядеть так:
using Pechkin;
using Pechkin.Synchronized;
public ActionResult ToPdf(int id)
{
var order = _orderBll.GetById(id);
var viewHtml = order.Body;
byte[] pdfBuf = new SynchronizedPechkin(new GlobalConfig()).Convert(viewHtml);
return File(pdfBuf, "application/pdf");
}