อาการ
เมื่อผู้ใช้เข้าถึงไซต์ SharePoint เว็บที่มีการเผยแพร่ ในความปลอดภัยทางอินเทอร์เน็ตของ Microsoft และการเร่งความเร็ว (ISA) Server 2006, ISA Server 2006 SP1 หรือ Windows จำเป็นต่อ Business Server 2008 ผู้ใช้อาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: ข้อผิดพลาด ข้อความ 1
HTTP 401 ไม่ได้รับอนุญาต
ข้อความแสดงข้อผิดพลาด 2
HTTP 500 เซิร์ฟเวอร์ปฏิเสธที่ระบุ Uniform Resource Locator (URL) ติดต่อผู้ดูแลเซิร์ฟเวอร์
ปัญหานี้เกิดขึ้นเมื่อเงื่อนไขต่อไปนี้เป็นจริง:
-
ในตัวฟังเว็บที่ใช้กฎการเผยแพร่เว็บ SharePoint ถูกกำหนดค่าการรับรองความถูกต้องแบบฟอร์ม HTML
-
เว็บไคลเอนต์ส่งการร้องขอการลงรายการบัญชีไปยังไซต์ SharePoint เว็บ
-
URL ของการร้องขอการลงรายการบัญชีประกอบด้วยอักขระที่ขยายเพิ่มเติม ตัวอย่างเช่น URL ประกอบด้วยได้ เซ็ตอัพ หรือรหัสประเทศ
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากเซิร์ฟเวอร์ ISA หรือ Windows จำเป็นต่อ Business Server 2008 ไม่สามารถแยกวิเคราะห์ URL ที่ประกอบด้วยอักขระเพิ่มเติม ในกรณีนี้ ISA Server หรือ Windows จำเป็นต่อ Business Server 2008 ปฏิเสธการร้องขอการประกาศที่ไคลเอ็นต์ส่ง
การแก้ไข
หากต้องการแก้ปัญหานี้ ให้ทำตามขั้นตอนต่างๆ ต่อไปนี้:
-
ใช้การแก้ไขด่วนที่อธิบายไว้ในบทความฐานความรู้ของ Microsoft 940250 สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
940250คำอธิบายของแพคเกจโปรแกรมแก้ไขด่วนของ ISA Server 2006:16 กรกฎาคม 2007
-
คัดลอกสคริปต์ต่อไปนี้ใน Notepad:หมายเหตุเมื่อต้องการแก้ไขปัญหานี้ในปี 2549 เซิร์ฟเวอร์ ISA ใช้สคริปต์ต่อไปนี้ คุณไม่จำเป็นต้องใช้โปรแกรมแก้ไขด่วนในบทความนี้สำหรับ 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 ส่วนที่มาก่อนเครื่องหมายคำถามใน 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 ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"