Грешки 407 на прокси от външни DTD и XML ресурси
Проследете неочаквана грешка 407 при преобразуване на документ към външни DTD, схеми или други ресурси, отваряни от парсера.
Локален документ също може да предизвика 407 при преобразуване. Неговият XML може да посочи DTD, схема или entity, а рендерерът може да изтегля стилове или изображения. Неуспешният клиент може да е вътре в този парсер, след като първоначалното изтегляне е приключило.
Запазете стека на изключението и заявения URI, после ги съпоставете с декларациите на входа или препратките към ресурси. Заявката за DTD към стандартен хост е отделна операция от заявката за страницата. Преобразуването HTML към PDF също може да се провали при изтегляне на отдалечени ресурси.
За вход на .NET XmlReader, чийто договор забранява DTD и външно разрешаване, използвайте:
var settings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Prohibit,
XmlResolver = null
};Предайте тези настройки на компонента, който действително анализира документа. DtdProcessing избира как да се обработва DTD; XmlResolver контролира външния достъп. Prohibit отхвърля документ с DTD—не премахва декларацията. Ако работният процес изисква такава, изберете одобрено локално разрешаване или изрично насочен resolver.
Дръжте стойностите по подразбиране свързани с API/средата за изпълнение. XmlReaderSettings използва Prohibit по подразбиране, а resolver-ът по подразбиране се промени на null от .NET Framework 4.5.2. Конвертор от трета страна може да ги отмени или да използва друг парсер.
Промяната на XHTML декларация към HTML doctype може да засегне един конвертор, но не конфигурира неговото прокси. Определете необходимите ресурси и политиката им за зареждане; удостоверяването в клиента на началната страница не удостоверява този втори клиент.