WkHtmlToXSharp — это оболочка C# (использующая P/Invoke) для превосходной библиотеки преобразования Html в PDF wkhtmltopdf. https://github.com/TobiTonner/WkHtmlToXSharp
У меня есть два веб-сайта в промежуточной среде Windows Server 2008 R2 x64. Один из них позволяет сказать, что веб-сайт A версия веб-сайта, а другой - веб-сайт B.
Преобразование WkHtmlToXSharp работало в версии A, но когда я устанавливаю версию B, преобразование не работает в этой версии, я получаю сообщение об ошибке:
HtmlToPdf conversion failed: Failed loading page http://website/Convert (sometimes it will work just to ignore this error with --load-error-handling ignore)
Мне было интересно, почему это происходит, и я указал веб-сайту A, чтобы он заглянул в ту же папку, что и сайт B. И я был удивлен, что когда я запускаю A, конверсия работает хорошо там, но когда я испорчу B, я все равно получаю ту же ошибку, но самое смешное, что оба сайтов указали на один и тот же исходный код (папку). Мне просто интересно, почему так происходит. Оба веб-сайта имеют схожие конфигурации пула приложений, а для параметра «Включить 32-разрядные приложения» установлено слишком большое значение в боте из них. Также я пытался установить один и тот же пул приложений для обоих веб-сайтов, и все равно происходило то же самое, конверсия на сайте A работает, а на сайте B нет.
В моей локальной среде (Windows 7 x64), если я устанавливаю одни и те же конверсии веб-сайтов, работающие в обоих случаях.
Также я сделал некоторые изменения в коде, чтобы игнорировать ошибки: converter.ObjectSettings.Load.LoadErrorHandling = LoadErrorHandlingType.ignore;
но это не исправляет ошибку, разница только в том, что теперь я получаю пустой pdf в случае конвертации на веб-сайте B.
Я просто думаю, может быть, это что-то в Windows Server, которое запрещает запускать/хранить в памяти две копии WkHtmlToXSharp.dll или wkhtmltopdf или что-то в этом роде.
Может быть, у кого-то есть какие-нибудь идеи по этому поводу?