1

我目前在我的项目TuesPechkin版本 2.1.1 和TuesPechkin.Wkhtmltox.AnyCPUv0.12.4.1 中使用

这是我的一些代码:

byte[] result = null;
 try
 {
 var globalSettings = CreateGlobalSettings(portraitMode);
 var objectSettings = CreateObjectSettings(websiteUrl, urlParameters);
 var document = new HtmlToPdfDocument
 {
 GlobalSettings = globalSettings
 };
 document.Objects.Add(objectSettings);
 CreateEventLog.CreateInformationLog("Ready to convert PDF");
 result = Converter.Convert(document);
 CreateEventLog.CreateInformationLog(result == null
 ? "Conversion failed using the Pechkin library"
 : "PDF conversion finished");

我在 3 个不同的环境中运行此代码:

  1. 在我的本地机器上它运行良好,并在 3 秒内生成文件。
  2. 在我的一台服务器(我们称之为服务器 A)上,它运行良好,并在 3 秒内生成文件。
  3. 在我的另一台服务器(我们称之为服务器 B)上,它在 Converter.Convert 部分保持 1 分钟(出于某种我不明白的原因),在那之后它返回 null。

服务器 A 和服务器 B 具有相同的设置(CPU、RAM 等) 服务器 B 在转换期间没有峰值增加。

有什么建议/想法吗?

4

2 回答 2

1

我发现了问题所在。

我要转换的 URL 位于表示层中,该层部署在单独的服务器中。Pechkin 转换器位于业务层中。

在服务器 A 中,我可以从业务服务器访问 URL。在服务器 B 中,我无法从业务服务器访问 URL。

这可能是一些需要创建的防火墙异常。

拥有 TuesPechkin 会很好,返回一个错误,说它无法访问 URL。

于 2019-04-30T14:57:28.193 回答
0

检查如何获得转换很重要,处理问题可能会导致问题只需在此处查看代码表格

public static IConverter GetConverter()
{
    lock (Locker)
    {
    if (converter != null)
        {
            return converter;
        }

        var tempFolderDeployment = new TempFolderDeployment();
        var winAnyCpuEmbeddedDeployment = new WinAnyCPUEmbeddedDeployment(tempFolderDeployment);
        IToolset toolSet;
        if (HostingEnvironment.IsHosted)
        {
            toolSet = new RemotingToolset<PdfToolset>(winAnyCpuEmbeddedDeployment);
        }
        else
        {
            toolSet = new PdfToolset(winAnyCpuEmbeddedDeployment);
        }

        converter = new ThreadSafeConverter(toolSet);
    }

    return converter;
}
于 2019-08-25T07:15:45.183 回答