【发布时间】:2018-11-22 07:09:02
【问题描述】:
在Ubuntu中使用Rotativa.aspnetcore包不知道什么问题?
- 我使用 Visual Studio 2017 MVC 默认模板。
- 使用 nuget Rotativa.aspnetcore (https://www.nuget.org/packages/Rotativa.AspNetCore/)
安装包 Rotativa.AspNetCore -Version 1.1.1
在 Linux Ubuntu 操作系统中执行 sudo apt-get install Xvfb libfontconfig wkhtmltopdf。 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 应用程序。 网址:http://localhost:5000/Home/DemoViewAsPDF
错误信息:
警告:Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] 无法确定重定向的 https 端口。
失败:Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1] 执行请求时发生未处理的异常。 System.Exception: QXcbConnection: 无法连接到显示器
在 Rotativa.AspNetCore.WkhtmlDriver.Convert(字符串 wkhtmlPath,字符串开关,字符串 html,字符串 wkhtmlExe) 在 Rotativa.AspNetCore.WkhtmltopdfDriver.ConvertHtml(字符串 wkhtmltopdfPath,字符串开关,字符串 html) 在 Rotativa.AspNetCore.ViewAsPdf.CallTheDriver(ActionContext 上下文) 在 Rotativa.AspNetCore.AsResultBase.BuildFile(ActionContext 上下文) 在 Rotativa.AspNetCore.AsResultBase.ExecuteResultAsync(ActionContext 语境) 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultAsync(IActionResult 结果) 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResultFilterAsyncTFilter,TFilterAsync 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext 语境) 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& 作用域, Object& 状态, Boolean& isCompleted) 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeResultFilters() 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter() 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext 语境) 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(状态和下一个, 范围&作用域,对象&状态,布尔& isCompleted) 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync() 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync() 在 Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext http上下文) 在 Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext 语境) 在 Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke(HttpContext 上下文)
【问题讨论】:
标签: asp.net-core asp.net-core-mvc asp.net-core-2.0 asp.net-core-webapi asp.net-core-2.1