HtmlAgilitypack не может загрузить определенный HTML-код. Вызывает необработанное исключение .net Framework в w3wp.exe - PullRequest
0 голосов
/ 01 ноября 2018

Мне удалось наконец изолировать проблему, с которой я столкнулся, с HtmlAgilityPack.

Некоторое время мой w3wp зависал, вызывая unhandled .net Framework exception и пул приложений перезапускался.

После использования Debug Diagnostic я обнаружил, что проблема возникает при попытке загрузить html-результат по этой ссылке:

https://tourette -syndrom.de / eingangsseite.htm

После просмотра исходного кода я обнаружил, что существует большое количество <o:p> узлов, которые никогда не закрываются, это приводит к сбою синтаксического анализатора.

Я использую LoadHtml, это то, что мне нужно использовать.

Если я использую htmlDoc.Load и передам ссылку URI вместо строки html, выдает ошибку, которую я могу поймать.

System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks

Ошибка мне ничего не говорит на самом деле, но приложение w3wp не вылетает!

Я протестировал эту опцию для true и false, но приложение по-прежнему аварийно завершает работу.

 htmlDoc.OptionFixNestedTags
 htmlDoc.OptionAutoCloseOnEnd
 htmlDoc.OptionWriteEmptyNodes 

Если я просто заменю узлы <o:p> вот так htmlDoc.LoadHtml(htmlString.Replace("<o:p>","")), тогда все пойдет хорошо. Я не ищу здесь простой функции замены, к тому же, это происходит на нескольких плохо отформатированных веб-сайтах, поэтому я надеялся, что это то, что я могу решить с помощью правильной настройки или методов расширения. Кто-нибудь еще с такой же проблемой?

...