Мне удалось наконец изолировать проблему, с которой я столкнулся, с 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>",""))
, тогда все пойдет хорошо. Я не ищу здесь простой функции замены, к тому же, это происходит на нескольких плохо отформатированных веб-сайтах, поэтому я надеялся, что это то, что я могу решить с помощью правильной настройки или методов расширения. Кто-нибудь еще с такой же проблемой?