Proxy-407-Fehler aus externen DTDs und XML-Ressourcen
Verfolgen Sie einen unerwarteten 407 während der Dokumentkonvertierung zu externen DTDs, Schemas oder anderen Ressourcen, die der Parser öffnet.
Ein lokales Dokument kann bei der Konvertierung dennoch einen 407 auslösen. Sein XML kann eine DTD, ein Schema oder eine Entität benennen, und ein Renderer lädt möglicherweise Styles oder Bilder. Der fehlerhafte Client kann sich innerhalb dieses Parsers befinden, nachdem der ursprüngliche Download abgeschlossen ist.
Behalten Sie den Ausnahmestapel und die angeforderte URI, und gleichen Sie sie mit Eingabedeklarationen oder Ressourcenverweisen ab. Eine DTD-Anfrage an einen Standard-Host ist ein anderer Vorgang als die Seitenanfrage. Die HTML-nach-PDF-Konvertierung kann ebenso fehlschlagen, während entfernte Assets abgerufen werden.
Verwenden Sie für eine .NET-XmlReader-Eingabe, deren Vertrag DTDs und externe Auflösung verbietet:
var settings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Prohibit,
XmlResolver = null
};Übergeben Sie diese Einstellungen an die Komponente, die das Dokument tatsächlich parst. DtdProcessing legt fest, wie eine DTD behandelt wird; XmlResolver steuert den externen Zugriff. Prohibit weist ein Dokument mit einer DTD zurück—es entfernt die Deklaration nicht. Wenn der Workflow eine benötigt, wählen Sie eine genehmigte lokale Auflösung oder einen explizit gerouteten Resolver.
Halten Sie die Standardwerte an die API/Laufzeit gebunden. XmlReaderSettings verwendet standardmäßig Prohibit, und sein Standard-Resolver wurde ab .NET Framework 4.5.2 auf null geändert. Ein Konverter eines Drittanbieters kann sie überschreiben oder einen anderen Parser verwenden.
Das Ändern einer XHTML-Deklaration in einen HTML-Doctype kann einen Konverter beeinflussen, konfiguriert aber nicht dessen Proxy. Legen Sie erforderliche Ressourcen und ihre Ladepolitik fest; die Authentifizierung am Client der ersten Seite authentifiziert diesen zweiten Client nicht.