Помилки 407 проксі із зовнішніх DTD і XML-ресурсів
Простежте неочікувану помилку 407 під час перетворення документа на зовнішні DTD, схеми або інші ресурси, які відкриває парсер.
Локальний документ усе ще може спричинити 407 під час перетворення. Його XML може вказувати на DTD, схему або сутність, а засіб візуалізації може завантажувати стилі чи зображення. Клієнт, що збоїть, може бути всередині цього парсера після завершення початкового завантаження.
Збережіть стек винятку та запитаний 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 може вплинути на один конвертер, але не налаштовує його проксі. Визначте потрібні ресурси та політику їх завантаження; автентифікація в клієнті початкової сторінки не автентифікує цей другий клієнт.