حظر الطلبات التي تتضمن رأس HTTP قبول ترميز عند استخدام وكيل الأمام ISA Server 2004 أو ISA Server 2006 أو Windows Server 2008 الأعمال الأساسية


الأعراض


على خادم يقوم بتشغيل "أمان إنترنت" وتسريع (ISA) Server 2004 مع Service Pack 2 أو Windows Server 2008 الأعمال الأساسية، يمكنك تعطيل عاملي تصفية ويب التالية:
  • عامل تصفية الضغط
  • التخزين المؤقت لعامل تصفية محتوى مضغوط
بعد القيام بذلك، ISA Server 2004 أو Windows Server 2008 الأعمال الأساسية حظر الطلبات التي تتضمن رأس HTTP قبول ترميز عند استخدام وكيل إلى الأمام. وأدخلت هذه عوامل تصفية ويب في ISA Server 2004 Service Pack 2 أو في Windows Server 2008 الأعمال الأساسية. قد يمكنك تعطيل عوامل تصفية ويب هذه بسبب مشاكل توافق البرامج التي تتضمن بعض ملقمات ويب.

الحل


معلومات حزمة الخدمة

لحل هذه المشكلة، تثبيت حزمة الخدمة service Pack 3 (sp3) الخاصة ISA Server 2004 ثم قم بتشغيل البرنامج النصي ل Microsoft Visual Basic المذكورة في هذا القسم. لمزيد من المعلومات حول كيفية الحصول على أحدث حزمة خدمة ل ISA Server 2004، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
كيفية الحصول على أحدث حزمة خدمة ل ISA Server 2004 891024
بعد تثبيت حزمة الخدمة، تشغيل البرنامج النصي التالي لتمكين معلمة تكوين جديد. تسمح هذه المعلمة الجديدة ISA Server إعادة توجيه الطلبات التي تتضمن رأس HTTP قبول ترميز إذا تم تعطيل عوامل تصفية الضغط في سيناريو وكيل إلى الأمام. للقيام بذلك، اتبع الخطوات التالية: توفر Microsoft أمثلة برمجية للتوضيح فقط، دون أي ضمان صريح أو ضمني. هذا يتضمن، على سبيل المثال لا الحصر، الضمانات الضمنية الخاصة بالتسويق أو الملاءمة لغرض معين. تفترض هذه المقالة أنك معتاد على لغة البرمجة التي يتم شرحها والأدوات المستخدمة لإنشاء الإجراءات وتصحيحها. يساعد مهندسو الدعم لدى Microsoft شرح وظيفة إجراء محدد. ومع ذلك، لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.
  1. انقر فوق ابدأوأشر إلى كافة البرامج، أشر إلى البرامج الملحقة، وثم انقر فوق "المفكرة".
  2. لصق التعليمات البرمجية التالية في مستند "المفكرة".
    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "AccessRuleSendAcceptEncodingHeader"Const SE_VPS_VALUE = trueSub SetValue()    ' Create the root obect.    Dim root  ' The FPCLib.FPC root object    Set root = CreateObject("FPC.Root")    'Declare the other objects needed.    Dim array       ' An FPCArray object    Dim VendorSets  ' An FPCVendorParametersSets collection    Dim VendorSet   ' An FPCVendorParametersSet object    ' Get references to the array object    ' and 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
  3. حفظ ملف المفكرة باسم "AccessRuleSendAcceptEncodingHeader.vbs".
  4. انقر نقراً مزدوجاً فوق الملف. vbs لتشغيل البرنامج النصي.
لتعطيل معلمة تكوين جديد، اتبع الخطوات التالية:
  1. انقر فوق ابدأوأشر إلى كافة البرامج، أشر إلى البرامج الملحقة، وثم انقر فوق "المفكرة".
  2. لصق التعليمات البرمجية التالية في مستند "المفكرة".
    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}" Const SE_VPS_NAME = "AccessRuleSendAcceptEncodingHeader" Const SE_VPS_VALUE = false Sub SetValue()      ' Create the root obect.      Dim root ' The FPCLib.FPC root object      Set root = CreateObject("FPC.Root")      'Declare the other objects needed.      Dim array ' An FPCArray object      Dim VendorSets ' An FPCVendorParametersSets collection      Dim VendorSet   ' An FPCVendorParametersSet object           ' Get references to the array object      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 If End Sub Sub CheckError()      If Err.Number <> 0 Then           WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description Err.Clear      End If End Sub SetValue
  3. حفظ ملف المفكرة باسم "Disable_AccessRuleSendAcceptEncodingHeader.vbs".
  4. انقر نقراً مزدوجاً فوق الملف. vbs لتشغيل البرنامج النصي.

الحالة


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