Не удалось получить заголовок результата преобразования. Ошибка передачи данных. Ошибка передачи данных 109

Я использую "SelectPdf Html To Pdf Converter for .NET — Community Edition" для создания файлов PDF. На живом сервере все работает. Внезапно начинает появляться ошибка, когда я пытаюсь создать файлы PDF.

Если я перезагружу свой сервер, он некоторое время работает нормально, но через некоторое время ошибка снова начинает появляться.

Я использую последнюю версию библиотеки. Ниже приведена полная информация об ошибке

Не удалось получить заголовок результата преобразования. Ошибка передачи данных. Ошибка передачи данных 109

Сведения об ошибке

System.Exception
Не удалось получить заголовок результата преобразования. Ошибка передачи данных. Ошибка передачи данных 109

System.Exception: не удалось получить заголовок результата преобразования. Ошибка передачи данных. Ошибка передачи данных 109

в SelectPdf.HtmlToImage.ᜀ(строка A_0, строка A_1, строка A_2, ᥻[]& A_3, ᣰ& A_4)
в SelectPdf.HtmlToPdf.ᜁ(строка A_0, строка A_1, строка A_2, строка A_3, логическое значение A_4)
в SelectPdf.HtmlToPdf.ConvertHtmlString(String htmlString, String baseUrl)
в BusinessLogic.SalaryManager.ConvertToPDF(SalarySlipExtra зарплатный лист, String title, String template, String baseUrl)
в BusinessLogic.SalaryManager.PrintSlips(List1 Ids, String baseUrl)
at SchoolMS.Web.Controllers.api.Manage.ApproveSalaryController.Post(List
1 ids , логическое значение isPrint)


person Kashif Hanif    schedule 21.04.2019    source источник
comment
Похоже на проблему с сервером. Вы читали документацию? Community Edition позволяет создавать PDF-документы объемом до 5 страниц. selectpdf.com/html-to-pdf/docs/html/Index. htm   -  person Ivan-San    schedule 08.05.2019
comment
@Ivan-San pdf содержит только 1 страницу. Он отлично работает при перезапуске сервера, а затем через некоторое время останавливается.   -  person Kashif Hanif    schedule 10.05.2019


Ответы (2)


Этот код ошибки просто указывает, что ожидаемый ответ не был получен. Это настоятельно предполагает, что ошибка на сервере помешала серверу правильно завершить создание PDF.

В вашем случае все работает какое-то время, а затем дает сбой, поэтому у вас может закончиться какой-то серверный ресурс, необходимый для создания PDF. Просмотрите журналы событий сервера и включите ведение журнала приложений, и вы можете увидеть предупреждения или сообщения об ошибках, которые укажут вам правильное направление.

Если у вас есть воспроизводимый сценарий сбоя, вы можете подключить отладчик к своей программе на сервере и подробно наблюдать за его сбоем.

Вы можете использовать sysinternals processExplorer и processMonitor, чтобы увидеть, какие ресурсы используются библиотекой SelectPDF, и отследить любые сбои.

Другие сообщают об аналогичных проблемах, а сайт SelectPDF содержит несколько советов по устранению неполадок здесь.

Распространенные ошибки на стороне сервера, которые могут вызвать вашу (повторяющуюся) проблему, могут быть следующими:

  • Недостаточно памяти: System.OutOfMemoryException was thrown

  • Файл заблокирован другим процессом: ERROR_SHARING_VIOLATION. Проверьте список исключений серверного антивируса и убедитесь, что необходимые файлы исключены из сканирования в режиме реального времени.

  • Превышено время загрузки очень большой веб-страницы. Попробуйте увеличить время ожидания: converter.Options.MaxPageLoadTime = 120;

  • URL-адрес преобразуемой страницы неправильно разрешается на сервере, даже если он правильно разрешается на клиенте.

  • Размер файла может быть слишком большим. Если причина в этом, изменение в файле web.config может решить проблему.

Возможное решение для слишком большого размера файла:

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="1000000000"/> 
  </requestFiltering>
</security>

В ситуации, когда создание PDF-файлов никогда не работает, следует учитывать еще несколько моментов:

  • Отказ из-за Error_Access_Denied. Неверные (недостаточные) разрешения на сервере. В частности, необходимы права на выполнение для Select.Html.dep.

  • Создание PDF-файла, вероятно, происходит в рабочем потоке, и контекст выполнения должен разрешать это.

  • Неправильная версия конвертера (32 против 64 бит).

  • Отсутствуют файлы .dat или .xml на сервере

  • Проблемы с доверием (попробуйте <system.web> <trust level="Full" />)

  • Смешивание версий, предназначенных для работы в веб-ролях, и версий, предназначенных для работы на веб-сайтах (Azure).

  • Условия нехватки памяти.

person Craig.Feied    schedule 08.05.2019

В моем случае ошибка передачи данных 109 была устранена путем обновления до последней версии SelectPdf nuget. Итак, это была программная ошибка внутри библиотеки SelectPdf.

person thomasgalliker    schedule 18.04.2021