我目前在我的项目TuesPechkin
版本2.1.1和TuesPechkin.Wkhtmltox.AnyCPU
v0.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种不同的环境中运行此代码:
服务器A和服务器B的设置相同(CPU,RAM等) 转换期间,服务器B上没有峰值增加。
有什么建议/想法吗?
答案 0 :(得分:0)
我发现了问题所在。
我要转换的URL在表示层中,该表示层部署在单独的服务器中。 Pechkin转换器位于业务层中。
在服务器A中,我可以从业务服务器访问URL。 在服务器B中,我无法从业务服务器访问URL。
这可能是一些需要创建的防火墙例外。
最好有TuesPechkin,返回一个错误,指出它无法访问URL。
答案 1 :(得分:0)
重要的是检查您如何获得转换,处置问题可能会导致问题 只需检查代码表单here
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;
}