خطاهای 407 پروکسی از DTDها و منابع XML خارجی
یک 407 غیرمنتظره را هنگام تبدیل سند به DTDها، طرحوارهها یا منابع خارجی دیگر که تجزیهگر باز میکند ردیابی کنید.
یک سند محلی هنوز میتواند هنگام تبدیل، 407 ایجاد کند. XML آن ممکن است یک DTD، طرحواره یا موجودیت را نام ببرد و یک رندرکننده ممکن است شیوهنامهها یا تصاویر را واکشی کند. کلاینتی که شکست میخورد میتواند درون همان تجزیهگر باشد، پس از پایان دانلود اولیه.
پشتهٔ استثنا و 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 پیشفرض آن از .NET Framework 4.5.2 به بعد به null تغییر کرد. یک مبدل شخص ثالث میتواند آنها را بازنویسی کند یا از تجزیهگر دیگری استفاده کند.
تغییر اعلان XHTML به doctype HTML ممکن است یک مبدل را تحت تأثیر قرار دهد، اما پروکسی آن را پیکربندی نمیکند. منابع لازم و سیاست بارگذاری آنها را مشخص کنید؛ احراز هویت در کلاینت صفحهٔ اولیه، این کلاینت دوم را احراز نمیکند.