Ознаки
Після того, як користувач отримує доступ до SharePoint, веб-сайт публікації в Microsoft Internet Security і прискорення ISA Server 2006, ISA Server 2006 пакетом оновлень 1 або Windows Essential Business Server 2008, користувач може з'явитися одне з таких повідомлень про помилку:помилки повідомлення 1
HTTP 401, несанкціоноване
Повідомлення про помилку 2
HTTP 500-сервер заборонено до вказаного уніфікований ресурсу (URL). Зверніться до адміністратора сервера.
Ця проблема виникає за таких трьох умов:
-
Веб-прослуховувач, який використовується в SharePoint веб-публікації правило налаштовано HTML-форму автентифікації.
-
Веб-клієнт надсилає запит POST, на сайті SharePoint.
-
URL-адреси запит POST, містить розширені символи. Наприклад, що URL-адреса містить é, меню або е.
Причина
Ця проблема виникає в тому, що сервер ISA Server або Windows Essential Business Server 2008 не вдалося проаналізувати URL-адреса містить розширені символи. Таким чином, клієнт надсилає запит POST скасування ISA Server або Windows Essential Business Server 2008.
Спосіб вирішення
Щоб вирішити цю проблему, виконайте такі дії.
-
Застосуйте виправлення, описане в статті бази знань Майкрософт, 940250. Клацніть номер статті в базі знань Microsoft Knowledge Base:
Опис пакета виправлень ISA Server 2006 940250 : 16 липня 2007 року.
-
Скопіюйте наведений нижче сценарій в текстовий файл:Примітка для вирішення цієї проблеми у ISA Server 2006, використовуйте такий сценарій. Не потрібно застосувати виправлення в цій статті, для ISA Server 2006 пакетом оновлень 1, але ви повинні використовувати сценарій.
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-адресу. Частина, яка стоїть перед знаком питання, 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
Стан
Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".