Как использовать пакет Rotativa.aspnetcore в ОС Linux Ubuntu (asp.net Core 2.1) - PullRequest
0 голосов
/ 22 ноября 2018

Использование пакета Rotativa.aspnetcore в Ubuntu не знает, что не так?

  1. Я использую стандартный шаблон Visual Studio 2017 MVC.
  2. Использование nuget Rotativa.aspnetcore (https://www.nuget.org/packages/Rotativa.AspNetCore/)

Установочный пакет Rotativa.AspNetCore -Version 1.1.1

Выполните sudo apt-get install Xvfb libfontconfig wkhtmltopdf в ОС Linux Ubuntu.wkhtmltopdf и wkhtmltoimage копируют его в проект Web MVC wwwroot / Rotativa.

Согласно Rotativa.aspnetcore Git (https://github.com/webgio/Rotativa.AspNetCore) файл Требуется настройка параметров конфигурации, выполненная в Startup.cs:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Faceapirequestrecords}/{action=Index}/{id?}");
    });

    RotativaConfiguration.Setup(env, "/usr/bin");
}

Код программы HomeController:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult DemoViewAsPDF()
    {
        return new ViewAsPdf("Index");
    }
}

Развертывание и выполнение приложений MVC. URL: http://localhost:5000/Home/DemoViewAsPDF

Сообщение об ошибке:

предупреждение: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware [3] Не удалось определить порт https для перенаправления.

ошибка: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware [1] Произошло необработанное исключение при выполнении запроса. System.Exception: QXcbConnection: не удалось подключиться к отображению

в Rotativa.AspNetCore.WkhtmlDriver.Convert (String wkhtmlPath, String переключатели, String,html, строка wkhtmlExe) в Rotativa.AspNetCore.V в Rotativa.AspNetCore.WkhtmltopdfDriver.ConvertHtml (строка wkhtmltopdfPath, строковые переключатели, строка html)iewAsPdf.CallTheDriver (контекст ActionContext) в Rotativa.AspNetCore.AsResultBase.BuildFile (контекст ActionContext) в Rotativa.AspNetCore.AsResultBase.ExecuteResultAsync (контекст ActionContext) в Microsoft.AspNetCore.InRative.InRec.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResultFilterAsyncTFilter, TFilterAsync в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow (контекст ResultExecutedContext) в Microsoft.AspNetCore.Mesc., Object & state, Boolean & isCompleted) в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultFilters () в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter () в Microsoft.AspNetCore.Exource.Inv.) в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next (State & next, Scope & scope, Object & state, Boolean & isCompleted)в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync () в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync () в Microsoft.AspNetCore.Builder.RouterMiddleware.In.text.Confile.Inteke (Http..Invoke (контекст HttpContext) в Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke (контекст HttpContext)

1 Ответ

0 голосов
/ 02 января 2019

Заранее: я не проверял это.

Вы пытаетесь позвонить http://localhost:5000/Home/DemoViewAsPDF через порт 5000. Rotativa пытается перенаправить на http *** s ***: // localhost: 5000 / Home / DemoViewAsPDF.Порт для https отличается.Поэтому вы не получите результат.

Попробуйте использовать https с самого начала.Это может решить вашу проблему.

Вы можете проверить, работает ли Rotativa так, как задумано, получив доступ к программе из командной строки:

wkhtmltopdf.exe www.samplewebsite.com  outputfolder+filename+extension
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...