Errori 407 del proxy da DTD e risorse XML esterni
Rintracciate un 407 inatteso durante la conversione di un documento verso DTD, schemi o altre risorse esterne aperte dal parser.
Un documento locale può comunque causare un 407 durante la conversione. Il suo XML può nominare un DTD, uno schema o un'entità, e un renderer può recuperare stili o immagini. Il client che fallisce può trovarsi dentro quel parser, dopo che il download originale è terminato.
Conservate lo stack dell'eccezione e l'URI richiesto, poi confrontateli con le dichiarazioni di input o i riferimenti alle risorse. Una richiesta DTD verso un host standard è un'operazione diversa dalla richiesta della pagina. Anche la conversione da HTML a PDF può fallire durante il recupero di risorse remote.
Per un input .NET XmlReader il cui contratto vieta DTD e risoluzione esterna, usate:
var settings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Prohibit,
XmlResolver = null
};Passate queste impostazioni al componente che analizza davvero il documento. DtdProcessing sceglie come gestire un DTD; XmlResolver controlla l'accesso esterno. Prohibit rifiuta un documento con un DTD—non rimuove la dichiarazione. Se il flusso di lavoro ne richiede uno, scegliete una risoluzione locale approvata o un resolver instradato esplicitamente.
Mantenete i valori predefiniti legati all'API e al runtime. XmlReaderSettings usa Prohibit per impostazione predefinita, e il suo resolver predefinito è passato a null a partire da .NET Framework 4.5.2. Un convertitore di terze parti può sovrascriverli o usare un altro parser.
Cambiare una dichiarazione XHTML in un doctype HTML può influire su un convertitore, ma non ne configura il proxy. Stabilite le risorse necessarie e la loro politica di caricamento; l'autenticazione sul client della pagina iniziale non autentica questo secondo client.