Как исправить исключение IIS "wkhtmltox.dll_unload" в C # с помощью Втупечкина - PullRequest
0 голосов
/ 27 апреля 2019

В моей программе активно используются туеспечкины.У меня есть 2 конвертировать метод, который использует ВтPechkin.dll.Один из них включает только данные тела без нижнего колонтитула и заголовка.

Но другой, имеет верхний и нижний колонтитулы, которые используют свойство HtmlUrl настроек объекта.Первый метод никогда не генерирует исключение в IIS, но второй метод, который использует исключение 3 url (1-> body, 2-> header, 3-> footer) в IIS, вот так.

Имя ошибочного приложения: iisexpress.exe, версия: 10.0.17763.1, отметка времени: 0xc5191a01 Неправильное имя модуля: wkhtmltox.dll_unloaded, версия: 0.12.2.1, отметка времени: 0x54bd024e Код исключения: 0xc00001a5 Смещение ошибки: 0x00fe4ab1 Идентификатор ошибочного процесса: 0x5470 Время запуска приложения, вызывающего сбой: 0x01004506104путь: C: \ Program Files (x86) \ IIS Express \ iisexpress.exe Неверный путь к модулю: wkhtmltox.dll Идентификатор отчета: 87e9a0cf-b084-480a-a673-da1bd5d87976 Полное имя ошибочного пакета: ИД приложения, относящегося к ошибочному пакету:

Мой метод

var document = new HtmlToPdfDocument
        {
            GlobalSettings = {
                ProduceOutline = true,
                DocumentTitle = title,
                Orientation = orientation,
                PaperSize = PaperKind.A4,
                Margins =
                {
                    Left = 1.375,
                    Right = 1.375,
                    Top = top,
                    Bottom = bottom,
                    Unit = TuesPechkin.Unit.Centimeters

                }
            },
            Objects = {
                new ObjectSettings {
                    PageUrl = link,
                    HeaderSettings = new HeaderSettings{HtmlUrl = headerPath, ContentSpacing = 2 },
                    FooterSettings = new FooterSettings{HtmlUrl = footerPath,}
                }
            }
        };
        var tempFolderDeployment = new TempFolderDeployment();
        var win32EmbeddedDeployment = new Win32EmbeddedDeployment(tempFolderDeployment);
        var remotingToolset = new RemotingToolset<PdfToolset>(win32EmbeddedDeployment);

        var converter = new ThreadSafeConverter(remotingToolset);

        byte[] result = converter.Convert(document);
        remotingToolset.Unload();

Примечания: 1) Я не получаю эту ошибку каждый раз.2) мой URL-адрес HTML не местный URL.3) если я жду поток 1000 мс перед remotingToolset.Unload (), частота ошибки уменьшается.4) Я пытался установить C ++ распространяемый, но не решить.5) Я пытался установить последнюю версию tuesPeckhin от Nuget, но это не решило мою проблему.

Моя ОС x64.

...