Um documento local ainda pode provocar um 407 durante a conversão. O seu XML pode nomear um DTD, um esquema ou uma entidade, e um renderizador pode buscar estilos ou imagens. O cliente que falha pode estar dentro desse analisador, depois de concluído o download original.

Guarde a pilha de exceções e o URI solicitado, e depois compare-os com as declarações de entrada ou as referências a recursos. Um pedido de DTD a um host padrão é outra operação diferente do pedido da página. A conversão de HTML para PDF também pode falhar ao obter recursos remotos.

Para uma entrada .NET XmlReader cujo contrato proíbe DTD e resolução externa, use:

var settings = new XmlReaderSettings
{
    DtdProcessing = DtdProcessing.Prohibit,
    XmlResolver = null
};

Passe essas configurações ao componente que realmente analisa o documento. DtdProcessing escolhe como tratar um DTD; XmlResolver controla o acesso externo. Prohibit rejeita um documento com DTD—não remove a declaração. Se o fluxo de trabalho exigir uma, escolha uma resolução local aprovada ou um resolver encaminhado explicitamente.

Mantenha os padrões ligados à API e ao runtime. XmlReaderSettings usa Prohibit por padrão, e seu resolver padrão mudou para null a partir do .NET Framework 4.5.2. Um conversor de terceiros pode substituí-los ou usar outro analisador.

Alterar uma declaração XHTML para um doctype HTML pode afetar um conversor, mas não configura seu proxy. Defina os recursos necessários e sua política de carregamento; a autenticação no cliente da página inicial não autentica este segundo cliente.

Artigos relacionados