ظهور رسالة خطأ عند زيارة موقع ويب تتم استضافته على IIS 7.0: "URL_DOUBLE_ESCAPED – 404.11 خطأ HTTP"

الأعراض

لديك موقع ويب تتم استضافته على خدمات معلومات إنترنت (IIS) 7.0. عند زيارة موقع ويب، قد تظهر رسالة خطأ مشابهة لما يلي:
خطأ في الخادم
--------------------------------------------------------------------------------
خطأ HTTP 404.11-URL_DOUBLE_ESCAPED
HRESULT: 0
وصف HRESULT # العملية بنجاح.

السبب

طلب HTTP إلى ملقم ويب يحتوي على تسلسل هروب مزدوج. ومع ذلك، يتم تكوين ميزة "طلب تصفية" حيث أن يرفض خادم الويب تسلسل هروب مزدوج.

الحل

لحل هذه المشكلة، اتبع الخطوات التالية.

ملاحظة: بعد اتباع هذه الخطوات، قد خفض مستوى أمان الملقم الذي يشغل IIS. لذلك، قبل تعيين الخاصية اللوودوبليسكابينج إلى True، يجب مراعاة المخاطر التي تنطوي عليها.
  1. انقر فوق ابدأواكتب "المفكرة" في المربع بدء البحث ، انقر نقراً مزدوجاً فوق "المفكرة" في قائمة " البرامج " وثم انقر فوق تشغيل كمسؤول. إذا تم مطالبتك بكلمة مرور مسؤول أو تأكيدها، اكتب كلمة المرور أو انقر فوق متابعة.
  2. من القائمة ملف ، انقر فوق فتح، اكتب %windir%\System32\inetsrv\config\applicationHost.config في المربع اسم الملف ، وثم انقر فوق فتح.
  3. في الملف ApplicationHost.config، حدد عنصر XML requestFiltering .
  4. تغيير قيمة الخاصية اللوودوبليسكابينج إلى True. للقيام بذلك، استخدم تعليمة برمجية مشابهة لمثال التعليمات البرمجية التالي.
    <requestFiltering allowDoubleEscaping="true">
  5. من القائمة ملف ، انقر فوق حفظ.
  6. قم بإنهاء برنامج "المفكرة".
هام: عند تمكين تسلسل تسربت مزدوج، قد انخفض مستوى أمان الملقم الذي يشغل IIS.

سيتم مباشرة تحرير ملف applicationHost.config الخطوات السابقة وتكوين هذا الإعداد على مستوى الخادم. يمكنك أيضا استخدام الأمر Appcmd لهذا الإعداد. للقيام بذلك، اتبع الخطوات التالية:
  1. انقر فوق ابدأثم انقر فوق تشغيل، واكتب cmd ثم في المربع فتح .
  2. اكتب الأمر التالي، ومن ثم اضغط ENTER:

    C: %windir%\system32\inetsrv القرص المضغوط

  3. تشغيل أحد الأوامر التالية:
    • Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
      ملاحظة: سيقوم هذا بتكوين هذا الإعداد فقط على "موقع ويب الافتراضي" بإنشاء أو تحرير ملف Web.config في المجلد الجذر من "موقع ويب الافتراضي".
    • appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True /commit:appHost
      ملاحظة: وهذا تكوين هذا الإعداد فقط على "موقع ويب الافتراضي" في الملف applicationHost.config باستخدام علامة.
خصائص

رقم الموضوع: 942076 - آخر مراجعة: 14‏/01‏/2017 - المراجعة: 2

تعليقات