الأعراض
عندما يصل مستخدم إلى موقع ويب SharePoint التي يتم نشرها في أمان إنترنت وملقم تسريع (ISA) 2006، ISA Server 2006 SP1 أو Windows Server 2008 الأعمال الأساسية، المستخدم قد تظهر إحدى رسائل الخطأ التالية:خطأ رسالة 1
HTTP 401 غير مصرح به
رسالة الخطأ ٢
رفض الملقم HTTP 500 المحدد محدد موقع المعلومات (URL). اتصل بمسؤول الملقم.
تحدث هذه المشكلة عندما تكون هذه الحالات صحيحة:
-
في الإصغاء ويب يستخدم قاعدة نشر ويب SharePoint، يتم تكوين مصادقة نموذج HTML.
-
عميل ويب بإرسال طلب POST لموقع SharePoint على ويب.
-
URL الخاص بطلب POST يحتوي على أحرف موسعة. على سبيل المثال، يتضمن محدد انتقائي أو é è.
السبب
تحدث هذه المشكلة بسبب ISA Server أو Windows Server 2008 الأعمال الأساسية لا يمكن تحليل عنوان URL الذي يحتوي على أحرف موسعة. في هذه الحالة، ISA Server أو Windows Server 2008 الأعمال الأساسية يرفض طلب POST الذي يرسل العميل.
الحل
لحل هذه المشكلة، اتبع الخطوات التالية.
-
تطبيق الإصلاح العاجل الموضح في مقالة "قاعدة معارف Microsoft" 940250. للحصول على مزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
وصف حزمة الإصلاحات الجديدة ISA Server 2006 940250 : 16 تموز/يوليه 2007
-
نسخ البرنامج النصي التالي في "المفكرة":ملاحظة لحل هذه المشكلة في ISA Server 2006، استخدم البرنامج النصي التالي. لم يتم تطبيق الإصلاح العاجل في هذه المقالة ل ISA Server 2006 SP1، ولكن يجب عليك استخدام البرنامج النصي.
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"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 objects that are needed. 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
-
حفظ الملف كملف برنامج نصي ل Microsoft Visual Basic باستخدام ملحق اسم ملف.vbs. على سبيل المثال، يمكنك حفظ الملف باستخدام الاسم التالي:
EnableKB940248.vbs
-
في موجه الأوامر، نقل إلى الموقع حيث قمت بحفظ ملف EnableKB940248.vbs.
-
قم بتشغيل الأمر التالي:
cscript EnableKB940248.vbs
ملاحظة: بعد اتباع هذه الخطوات، يمكنك جزء الاستعلام فقط لعنوان URL يتضمن أحرف موسعة. جزء الاستعلام يتبع علامة الاستفهام (?) في عنوان URL. الجزء الذي يسبق علامة الاستفهام في محدد موقع المعلومات لا يتضمن أحرف موسعة حتى بعد استخدام هذا الحل. إذا كنت تريد إزالة التغييرات التي يتم إجراؤها عند تشغيل البرنامج النصي في الخطوة 5، قم بتشغيل البرنامج النصي التالي:
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"Const SE_VPS_VALUE = FalseSub SetValue()' Create the root object.Dim root ' The FPCLib.FPC root objectroot = CreateObject("FPC.Root")'Declare the other objects that are needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Get references to the array object' and to the network rules collection.array = root.GetContainingArrayVendorSets = array.VendorParametersSetsOn Error Resume NextVendorSet = VendorSets.Item(SE_VPS_GUID)If Err.Number <> 0 ThenErr.Clear()' Add the itemVendorSet = VendorSets.Add(SE_VPS_GUID)CheckError()WScript.Echo("New VendorSet added... " & VendorSet.Name)ElseWScript.Echo("Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME))End IfIf VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.Clear()VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckError()ElseVendorSets.Save(False, True)CheckError()If Err.Number = 0 ThenWScript.Echo("Done with " & SE_VPS_NAME & ", saved!")End IfEnd IfElseWScript.Echo("Done with " & SE_VPS_NAME & ", no change!")End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo("An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description)Err.Clear()End IfEnd SubSetValue Change to:[INSERT CORRECTION]Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"Const SE_VPS_VALUE = falseSub SetValue()' Create the root object.Dim root ' The FPCLib.FPC root objectSet root = CreateObject("FPC.Root")'Declare the other objects that are needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Get references to the array object' and to the network rules collection.Set array = root.GetContainingArraySet VendorSets = array.VendorParametersSetsOn Error Resume NextSet VendorSet = VendorSets.Item( SE_VPS_GUID )If Err.Number <> 0 ThenErr.Clear' Add the itemSet VendorSet = VendorSets.Add( SE_VPS_GUID )CheckErrorWScript.Echo "New VendorSet added... " & VendorSet.NameElseWScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)End Ifif VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.ClearVendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckErrorElseVendorSets.Save false, trueCheckErrorIf Err.Number = 0 ThenWScript.Echo "Done with " & SE_VPS_NAME & ", saved!"End IfEnd IfElseWScript.Echo "Done with " & SE_VPS_NAME & ", no change!"End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.DescriptionErr.ClearEnd IfEnd SubSetValue
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".