如果从SSL读取样式表,PDF转换突然失败

时间:2015-05-15 13:07:12

标签: css .net ssl evopdf

我一直在使用EvoPdf版本3.5而没有任何问题,但突然间它无法从SSL读取样式表。

string html = "<link href=\"https://www.domain.com/styles.css\" rel=\"stylesheet\" type=\"text/css\" />Test";
PdfConverter pdfConverter = new PdfConverter();
byte[] bytes = pdfConverter.GetPdfBytesFromHtmlString(html);

如果从http加载样式表,它可以正常工作。在另一个IIS上,样式表可以从SSL中读取。

我不知道如何解决这个问题。它可以是DNS问题吗?

3 个答案:

答案 0 :(得分:4)

原因是服务器上禁用了SSL 3.0,而低于4.0的EVO HTML到PDF转换器的版本没有完全支持TLS,因此在访问HTTPS文档或资源时可能无法在所有服务器上正常工作。如果HTML文档中的HTTPS URL引用了这些资源,则可能导致错误,缺少图像和样式。

答案 1 :(得分:0)

您可以尝试从chrome商店下载pdf viewer。它已经为ssl pdf做好了准备,它正在为我工​​作。

Display pdf in iframe using ssl/https based

答案 2 :(得分:0)

将网站移至新的Web服务器后,我遇到了此问题。 EvoPdf的支持团队建议我更改CSS参考,以通过IP进行修改:

Dim csspath As String = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + ResolveUrl("~/") + "Styles/MyStyles.css"
Dim rootIP As String = System.Net.Dns.GetHostEntry(Request.Url.Host).AddressList(0).ToString()
csspath = csspath.Replace("mydomain.com", rootIP)

这当然是一种解决方法,但是在无法在Web服务器或IIS中找到问题的根源之后,此问题得以解决。