У меня есть .Netcore 2.1 MVC, развернутая в Azure WebApp Linux.
Мне нужно создавать отчеты в формате PDF, поэтому я решил использовать jsreport local.
var rs = new LocalReporting().UseBinary(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? JsReportBinary.GetBinary() : jsreport.Binary.Linux.JsReportBinary.GetBinary()).Configure((cfg) =>
{
cfg.HttpPort = 1000;
cfg.AllowedLocalFilesAccess().BaseUrlAsWorkingDirectory();
return cfg;
}).AsUtility().Create();
var report = await rs.RenderAsync(new RenderRequest
{
Template = new Template
{
Recipe = Recipe.ChromePdf,
Engine = Engine.None,
Content = contentToPrint
}
});
В Windows этот код работает нормально. После развертывания в Web App (Linux) я получаю сообщение об ошибке:
Отчет об ошибке при отображении ошибки: возникла критическая ошибка при попытке выполнить команду рендеринга: не удалось запустить chrome! /Tmp/jsreport/compile/jsreport-2.4.0-Bk_dhUp8V/chrome/chrome: ошибка при загрузке общих библиотек libX11.so.6: не удается открыть общий объектный файл: такого файла или каталога нет: УСТРАНЕНИЕ НЕПОЛАДОК: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md (1). вызвано ошибкой (1) -> meta = {"remoteStack": "Ошибка: не удалось запустить chrome! \ n / tmp / jsreport / compile / jsreport-2.4.0-Bk_dhUp8V / chrome / chrome: ошибка при загрузке общих библиотек: libX11.so.6: не удается открыть файл общего объекта: такой файл или каталог не существует \ n \ n \ nУСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md\n\n в onClose (jsreportRuntime.js: 400867: 14) \ n в Interface.helper.addEventListener ( jsreportRuntime.js: 400856: 50) \ n в emitNone (events.js: 111: 20) \ n в Interface.emit (events.js: 208: 7) \ n в Interface.close (readline.js: 370: 8 ) \ n в Socket.onend (readline.js: 149: 10) \ n в emitNone (events.js: 111: 20) \ n в Socket.emit (events.js: 208: 7) \ n в endReadableNT (_stream_readable) .js: 1064: 12) \ n в _combinedTickCallback (внутренний / process / next_tick.js: 138: 11) \ n в process._tickCallback (внутренний / process / next_tick.js: 180: 9) "}, стек = ошибка: в responseToBuffer ([eval]: 72595: 29) в concat ([eval]: 72648: 40) в ConcatStream. ([eval]: 17182: 43) в emitNone (events.js: 111: 20) в ConcatStream.emit (events.js: 208: 7) в finishMaybe ([eval]: 97353: 14) в afterWrite ([eval] : 97215: 3) в _combinedTickCallback (внутренний / process / next_tick.js: 144: 20) в process._tickCallback (внутренний / process / next_tick.js: 180: 9)