Сбой Rotativa на узле сервисной фабрики в Azure - PullRequest
0 голосов
/ 27 июня 2018

У меня есть проект, который должен собрать несколько данных и поместить их в один файл PDF, для этого я использовал оболочку Rotativa. Он отлично работает на моем локальном кластере сервисной фабрики, и я могу сгенерировать pdf, используя ViewAsPdf, а затем получить байтовый массив, чтобы прикрепить его к электронной почте. Проблема возникает, когда я развернул проект в Azure (кластер сервисной структуры), и я получаю эту ошибку:

at Rotativa.AspNetCore.WkhtmlDriver.Convert(String wkhtmlPath, String switches, String html, String wkhtmlExe)\r\n at Rotativa.AspNetCore.WkhtmltopdfDriver.ConvertHtml(String wkhtmltopdfPath, String switches, String html)\r\n at Rotativa.AspNetCore.ViewAsPdf.<CallTheDriver>d__19.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---

То, что я пробовал:

  • Установленные распространяемые пакеты Visual C ++ для Visual Studio 2013 и 2015 в версиях x64 и x86 на узле сервисной фабрики (где развертывается проект)
    • Переместил папку Rotativa из wwwroot в корневой путь проекта и установил путь в методе RotativaConfiguration.Setup ()
    • Скопировал msvcp120.dll и msvcr120.dll в папку Rotativa
    • Установлен wkhtmltopdf.exe в узле сервисной фабрики
    • Я установил пакет Nuget Rotativa.AspNetCore 1.0.6
    • Я использую ViewAsPdf для визуализации бритвы и вызываю метод BuildFile для получения байтового массива
    • Если я запустил wkhtmltopdf.exe в командной строке на узле сервисной фабрики, я получаю: «Не удалось правильно запустить приложение (0xc000007b) Нажмите« ОК », чтобы закрыть приложение»

Узел сервисной фабрики является машиной Windows. Проект построен с ядром Aspnet 2.0 Любая помощь будет оценена. Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Я полагаю, проблема с зависимостями отсутствует.

В зависимости от предоставленного вами сценария и сообщения The application was unable to start correctly(0xc000007b) существуют и другие проблемы: Приложению не удалось запуститься правильно (0xc000007b) и Ошибка: приложению не удалось запуститься правильно

Другой проблемой может быть отсутствие разрешений для запуска или доступа к определенным зависимостям.

Я бы предложил вам попробовать:

  • сначала работает в качестве администратора через командную строку.
  • Проверка разрешений брандмауэра или сети \ веб-сайта
  • Используйте средство обхода зависимостей, проверьте загружаемые \ сбойные зависимости и проверьте, установлены ли они на сервере.
0 голосов
/ 27 июня 2018

В качестве обходного пути вы можете создать контейнер для запуска этого. Это избавило бы вас от необходимости заходить в узлы для установки компонентов, что ограничивает возможности масштабирования и переключения при сбое.

Есть некоторые люди , которые заставили его работать .

...