ظهور رسالة خطأ عند الوصول إلى موقع ويب من خلال ISA Server 2004 يحتوي على عامل تصفية "ويب تصفية ضغط" ممكن


مؤشرات الخطأ


اطّلع على السيناريو التالي:
  • يمكنك الوصول إلى أحد مواقع ويب التي يتم نشرها في أمان إنترنت وملقم تسريع (ISA) 2004. أو، يمكنك الوصول إلى موقع ويب باستخدام ISA Server 2004 كوكيل ويب.
  • يتم تمكين عامل تصفية "ويب تصفية الضغط" في ISA Server 2004.
  • موقع ويب يرسل استجابة HTTP/0.9 إلى العميل.
في هذا السيناريو، تتلقى إحدى رسائل الخطأ التالية. رسالة الخطأ 1
خطأ وكيل HTTP/1.1 502 (اسم شبكة الاتصال المحدد لم يعد متوفراً.)
رسالة الخطأ ٢
رمز الخطأ 64: استضافة غير أفايلابليباكجروند: ملقم وكيل أو عبارة قد فقدت الاتصال بخادم ويب.

السبب


استجابة HTTP/0.9 يحتوي على نص، ولكن أي رؤوس. إغلاق موقع ويب اتصال للإشارة إلى نهاية الاستجابة. ومع ذلك، يتوقع عامل تصفية "ويب تصفية الضغط" في ISA Server HTTP/1.0 أو استجابة HTTP/1.1. لم يتعرف عامل تصفية "ويب تصفية الضغط" استجابة HTTP/0.9. وبالتالي، يفترض عامل تصفية "ويب تصفية الضغط" فقدان الاتصال أو إعادة تعيين قبل إرسال موقع ويب كافة رؤوس استجابة HTTP.

الحل


لحل هذه المشكلة، اتبع الخطوات التالية.
  1. تطبيق حزمة الإصلاح العاجل الموضح في مقالة "قاعدة معارف Microsoft" التالية:
    وصف حزمة الإصلاحات الجديدة ISA Server 2004 945043 : 12 تشرين الثاني/نوفمبر 2007
  2. تشغيل "المفكرة".
  3. نسخ التعليمات البرمجية التالية ولصقها في برنامج "المفكرة".
    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "EnableHotfix944114"Const SE_VPS_VALUE = trueSub SetValue()    ' Create the root object.    Dim root  ' The FPCLib.FPC root object    Set root = CreateObject("FPC.Root")    'Declare the other required objects.    Dim array       ' An FPCArray object    Dim VendorSets  ' An FPCVendorParametersSets collection    Dim VendorSet   ' An FPCVendorParametersSet object    ' Get references to the array object    ' and to the network rules collection.    Set array = root.GetContainingArray    Set VendorSets = array.VendorParametersSets    On Error Resume Next    Set VendorSet = VendorSets.Item( SE_VPS_GUID )    If Err.Number <> 0 Then        Err.Clear        ' Add the item.        Set VendorSet = VendorSets.Add( SE_VPS_GUID )        CheckError        WScript.Echo "New VendorSet added... " & VendorSet.Name    Else        WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value(SE_VPS_NAME)    End If    if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then        Err.Clear        VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE        If Err.Number <> 0 Then            CheckError        Else            VendorSets.Save false, true            CheckError            If Err.Number = 0 Then                WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"            End If        End If    Else        WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"    End IfEnd SubSub CheckError()    If Err.Number <> 0 Then        WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description        Err.Clear    End IfEnd SubSetValue
  4. حفظ الملف كملف برنامج نصي ل Microsoft Visual Basic باستخدام ملحق اسم ملف.vbs. على سبيل المثال، استخدام الاسم التالي لحفظ الملف:
    EnableHotfix944114.vbs
  5. في موجه الأوامر، تغيير إلى الموقع الذي تم حفظ الملف في الخطوة 4، ثم قم بتشغيل الأمر التالي:
    cscript EnableHotfix944114.vbs
ملاحظة: للعودة إلى الإعداد الافتراضي، قم بتحرير البرنامج النصي عن طريق تغيير "Const SE_VPS_VALUE = true" إلى "Const SE_VPS_VALUE = false." حفظ البرنامج النصي ومن ثم أعد تشغيله مرة أخرى.

الحل البديل


للتغلب على هذه المشكلة، قم بتعطيل عامل تصفية "ويب تصفية الضغط" في ISA Server.

الحالة


أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".