Lokalny dokument nadal może powodować błąd 407 podczas konwersji. Jego XML może wskazywać DTD, schemat lub encję, a renderer może pobierać style lub obrazy. Zawodzący klient może znajdować się wewnątrz tego parsera, po zakończeniu pierwotnego pobierania.

Zachowaj stos wyjątku i żądany URI, a następnie dopasuj je do deklaracji wejściowych lub odwołań do zasobów. Żądanie DTD do standardowego hosta to inna operacja niż żądanie strony. Konwersja HTML do PDF również może się nie udać podczas pobierania zdalnych zasobów.

Dla danych wejściowych .NET XmlReader, których kontrakt zabrania DTD i zewnętrznego rozwiązywania, użyj:

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

Przekaż te ustawienia do komponentu, który faktycznie analizuje dokument. DtdProcessing wybiera sposób obsługi DTD; XmlResolver kontroluje dostęp zewnętrzny. Prohibit odrzuca dokument z DTD—nie usuwa deklaracji. Jeśli przepływ pracy wymaga jednej, wybierz zatwierdzone rozwiązywanie lokalne lub wyraźnie kierowany resolver.

Utrzymuj wartości domyślne powiązane z API i środowiskiem uruchomieniowym. XmlReaderSettings domyślnie używa Prohibit, a jego domyślny resolver został zmieniony na null od .NET Framework 4.5.2. Konwerter firmy trzeciej może je zastąpić lub użyć innego parsera.

Zmiana deklaracji XHTML na doctype HTML może wpłynąć na jeden konwerter, ale nie konfiguruje jego serwera proxy. Ustal wymagane zasoby i ich politykę ładowania; uwierzytelnianie w kliencie początkowej strony nie uwierzytelnia tego drugiego klienta.

Powiązane artykuły