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

PDF conversion suddenly fails if reading stylesheet from SSL

我一直在使用 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问题吗?

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

您可以尝试从 chrome 商店下载 pdf 查看器。它正在为 ssl pdf 准备就绪,它正在为我工​​作。

我在将站点移动到新的 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 中找到问题的根源后,这解决了问题。