Σφάλματα 407 του διαμεσολαβητή από εξωτερικά DTD και πόρους XML
Εντοπίστε ένα απρόσμενο 407 κατά τη μετατροπή εγγράφου σε εξωτερικά DTD, σχήματα ή άλλους πόρους που ανοίγει ο αναλυτής.
Ένα τοπικό έγγραφο μπορεί ακόμη να προκαλέσει 407 κατά τη μετατροπή. Το XML του μπορεί να ονομάζει DTD, σχήμα ή οντότητα, και ένας renderer μπορεί να ανακτά στυλ ή εικόνες. Ο πελάτης που αποτυγχάνει μπορεί να βρίσκεται μέσα σε αυτόν τον αναλυτή, αφού ολοκληρωθεί η αρχική λήψη.
Κρατήστε τη στοίβα εξαίρεσης και το ζητούμενο 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 σε doctype HTML μπορεί να επηρεάσει έναν μετατροπέα, αλλά δεν διαμορφώνει τον διαμεσολαβητή του. Καθορίστε τους απαιτούμενους πόρους και την πολιτική φόρτωσής τους· ο έλεγχος ταυτότητας στον πελάτη της αρχικής σελίδας δεν πιστοποιεί αυτόν τον δεύτερο πελάτη.