Rotativa pdf转换器在服务器上运行速度非常慢

时间:2015-04-13 19:14:38

标签: c# pdf asp.net-mvc-5 rotativa

我使用rotativa 1.6.4 nuget包将html转换为带有vs ide的.net mvc5项目中的pdf。它在我当地工作正常。但是,在我发布到服务器(' Microsoft Windows Server 2012 Standard' arvixe共享服务器)之后;一切正常,除了pdf转换页面。结果非常慢(超过30秒)。

然后我学习到另一台服务器(@ 64位Windows Server 2008 R2企业版和IIS 7.5'),它在这里没有任何问题。

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

老问题以及所有,我知道....但我遇到了同样的问题。 使用Rotativa.PartialViewAsPdf我的pdf花了大约20秒来渲染。 经过大量的故障排除后,我将其缩小为外部样式表参考。

更改

<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" />

到此(仅添加 https:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" />

解决了我的问题。

PDF现在可以在3秒内呈现。

答案 1 :(得分:0)

其他情况是关于包的wkhtmltopdf.exe的编译版本,我替换了项目中的.exe文件并替换为最新版本,并且这样做了#34;做了魔术&#34;

答案 2 :(得分:0)

我有同样的问题。 Rotativa工作得很好但是在服务器改变之后它工作得很慢。我发现添加了一些CSS和Javascript链接,我删除了它现在运行良好的所有链接。 还有一些图像没有加载,因此加载速度很慢。

Eg.  < img src="/Images/arriw.png" / >
   <  script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script >

当我删除所有这些东西时,它工作得非常快。

答案 3 :(得分:0)

就我而言,使用UrlAsPdf()以及仅添加所需的cookie可以解决此问题。以下是我使用的示例代码。

var report = new UrlAsPdf(url);

Dictionary<string, string> cookieCollection = new Dictionary<string, string>();
foreach (var key in Request.Cookies.AllKeys)
{
   if (Crypto.Hash("_user").Equals(key))
   {
      cookieCollection.Add(key, Request.Cookies.Get(key).Value);
      break;
   }
}
report.Cookies = cookieCollection;
report.FormsAuthenticationCookieName = FormsAuthentication.FormsCookieName;