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.

Articoli correlati