Среда выполнения Visual C++ 2013 в Service Fabric
Я использую ВтПечкин в одном из сервисов Service Fabric для генерации PDF-файлов из HTML. Это нормально работает на моем локальном компьютере разработки, но как только я разверну свое приложение в кластере Azure и запуском того же кода, я получу следующее сообщение об ошибке:
Unable to load DLL 'wkhtmltox.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Я думаю, что это может быть потому, что ВичПечкин использует среду выполнения Visual C++ 2013. Поддерживается ли это в кластере Azure? Или что-то еще не так?
Мой код для создания PDF выглядит следующим образом:
private static readonly IConverter _converter = new ThreadSafeConverter(
new PdfToolset(
new Win64EmbeddedDeployment(
new AssemblyFolderDeployment())));
public Task<byte[]> GeneratePdfFromHtml(string title, string html)
{
try
{
var document = new HtmlToPdfDocument
{
GlobalSettings = {
ProduceOutline = true,
DocumentTitle = title,
PaperSize = PaperKind.A4, // Implicit conversion to PechkinPaperSize
Margins = {
All = 1.375,
Unit = Unit.Centimeters
}
},
Objects = {
new ObjectSettings { HtmlText = html }
}
};
byte[] result = _converter.Convert(document);
return Task.FromResult(result);
}
catch(Exception e)
{
throw e;
}
}
AssemblyFolderDeployment.cs
public class AssemblyFolderDeployment : IDeployment
{
public string Path
{
get
{
return System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Wkhtml");
}
}
}