Tarpinio serverio 407 klaidos dėl išorinių DTD ir XML išteklių
Atsekite netikėtą 407, kai dokumentas konvertuojamas į išorinius DTD, schemas ar kitus išteklius, kuriuos atidaro analizatorius.
Vietinis dokumentas vis tiek gali sukelti 407 konvertavimo metu. Jo XML gali nurodyti DTD, schemą arba objektą, o atvaizduoklis gali gauti stilius ar vaizdus. Nepavykstantis klientas gali būti to analizatoriaus viduje, kai pirminis atsisiuntimas jau baigtas.
Išsaugokite išimties steką ir užklaustą URI, tada palyginkite juos su įvesties deklaracijomis ar išteklių nuorodomis. DTD užklausa standartiniam hostui yra kita operacija nei puslapio užklausa. HTML į PDF konvertavimas taip pat gali nepavykti gaunant nuotolinius išteklius.
Jei .NET XmlReader įvesties sutartis draudžia DTD ir išorinį sprendimą, naudokite:
var settings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Prohibit,
XmlResolver = null
};Perduokite šiuos nustatymus komponentui, kuris iš tikrųjų analizuoja dokumentą. DtdProcessing nusprendžia, kaip tvarkyti DTD; XmlResolver valdo išorinę prieigą. Prohibit atmeta dokumentą su DTD—jis nepašalina deklaracijos. Jei darbo eigai reikia vienos, pasirinkite patvirtintą vietinį sprendimą arba aiškiai nukreiptą resolver.
Laikykite numatytąsias reikšmes susietas su API/vykdymo aplinka. XmlReaderSettings pagal numatytuosius nustatymus naudoja Prohibit, o jo numatytasis resolver nuo .NET Framework 4.5.2 buvo pakeistas į null. Trečiosios šalies konverteris gali juos nepaisyti arba naudoti kitą analizatorių.
XHTML deklaracijos pakeitimas HTML doctype gali paveikti vieną konverterį, bet nesukonfigūruoja jo tarpinio serverio. Nustatykite reikalingus išteklius ir jų įkėlimo politiką; autentifikavimas pradinio puslapio kliente neautentifikuoja šio antrojo kliento.