html - Rotativa 在服务器上的 css 样式有问题

标签 html css asp.net-mvc wkhtmltopdf rotativa

我正在使用 Rotativa在我的 ASP.net MVC 元素中。我使用 ViewAsPDF 作为返回类型。问题是在本地环境中一切运行顺利,css 样式正确应用于 PDF,但是当我在产品服务器上部署我的应用程序并尝试获取 PDF 文件时,服务器仅在 ~ 5 分钟后返回它而没有应用 CSS 样式.如果我直接将样式赋予属性 <td style="..."> 有用。在哪里可以找到问题以及如何解决?

谢谢!

更新: 如果我删除指向 CSS 样式表的链接,它会工作得更快:

更新: 如果我在我的任何网站页面上手动运行 wkhtmltopdf.exe,我会得到:

%computername% | D:\Projects\myapp\trunk\WebSite\Rotativa>wkhtmltopdf http://myappp.com pdf.pfd
Loading pages (1/6)
Error: Failed loading page http://finishgenius.tizbi.com (sometimes it will work just to ignore this error with --load-error-handling ignore)

更新: 如果我将方法 ViewAsPdf 更改为 ActionAsPDF 我收到错误:

Server Error in '/' Application.

Error: Failed loading page http://myapp.com/FinishingSchedules/PrintScheduleDetails/2?Name=Schedule No.2&CostPerSquareFootMaterial=0.06&CostPerSquareFootLabor=54&DirectCostOfMaterialsAndLabor=108.12&TotalPriceWithMarkUp=118.93&TotalJobSize=2&ProductionTime=36&MaterialsQuantities=System.Collections.Generic.List`1[WebSite.ViewModels.FinishingSchedules.MaterialsQuantities] (sometimes it will work just to ignore this error with --load-error-handling ignore)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Exception: Error: Failed loading page http://myapp.com/FinishingSchedules/PrintScheduleDetails/2?Name=Schedule No.2&CostPerSquareFootMaterial=0.06&CostPerSquareFootLabor=54&DirectCostOfMaterialsAndLabor=108.12&TotalPriceWithMarkUp=118.93&TotalJobSize=2&ProductionTime=36&MaterialsQuantities=System.Collections.Generic.List`1[WebSite.ViewModels.FinishingSchedules.MaterialsQuantities] (sometimes it will work just to ignore this error with --load-error-handling ignore)


Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[Exception: Error: Failed loading page http://myapp.com/FinishingSchedules/PrintScheduleDetails/2?Name=Schedule No.2&CostPerSquareFootMaterial=0.06&CostPerSquareFootLabor=54&DirectCostOfMaterialsAndLabor=108.12&TotalPriceWithMarkUp=118.93&TotalJobSize=2&ProductionTime=36&MaterialsQuantities=System.Collections.Generic.List`1[WebSite.ViewModels.FinishingSchedules.MaterialsQuantities] (sometimes it will work just to ignore this error with --load-error-handling ignore)
]
   Rotativa.WkhtmltopdfDriver.Convert(String wkhtmltopdfPath, String switches, String html) +570
   Rotativa.AsPdfResultBase.CallTheDriver(ControllerContext context) +26
   Rotativa.AsPdfResultBase.BuildPdf(ControllerContext context) +128
   Rotativa.AsPdfResultBase.ExecuteResult(ControllerContext context) +19
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +56
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +420
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +52
   System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +173
   System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
   System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +39
   System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +28
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +29
   System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
   System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9633216
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18067 

最佳答案

终于找到问题的根源了。我试图从服务器的浏览器访问我的网站,但我发现服务器看不到自己。我用正确的 IP 地址更新了 hosts.txt 文件,这解决了我的问题。希望这会帮助别人!谢谢!

关于html - Rotativa 在服务器上的 css 样式有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355844/

相关文章:

javascript - 使用 JS 查找和比较顺序 div

javascript - CSS3 从固定到绝对的过渡

javascript - 未捕获的类型错误 : Cannot read property 'lastChild' of null

html - CSS 删除仅包含 <br> 的 HTML 元素

html - 如何在同一页面的同一个div上应用两种不同的CSS样式?

javascript - Div 定位计算得很好,但需要解释它是如何工作的

asp.net-mvc - Asp.NET MVC 4 Entity Framework 5 - 无法找到请求的 .NET Framework 数据提供程序

c# - MVC 项目中的 jQuery 错误 : Datepicker is not a function

asp.net-mvc - 当我使用 DropDownListFor 时,所选项目不显示

php - DOM 解析器突出显示无效的关键字