อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณเข้าถึงเว็บไซต์ที่เผยแพร่ในความปลอดภัยทางอินเทอร์เน็ตของ Microsoft และการเร่งความเร็ว (ISA) Server 2004 หรือ คุณเข้าถึงเว็บไซต์ โดยใช้ ISA Server 2004 เป็นพร็อกซีของเว็บ
-
เปิดใช้งานตัวกรองเว็บของตัวกรองการบีบอัดใน ISA Server 2004
-
เว็บไซต์ส่งการตอบสนองของ HTTP/0.9 ไปยังไคลเอนต์
ในสถานการณ์สมมตินี้ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ ข้อความแสดงข้อผิดพลาด 1
ข้อผิดพลาดในการพร็อกซี 502 HTTP/1.1 (ชื่อเครือข่ายที่ระบุไม่สามารถใช้งาน)
ข้อความแสดงข้อผิดพลาด 2
รหัสข้อผิดพลาด 64: โฮสต์ไม่ availableBackground: เกตเวย์หรือพร็อกซีเซิร์ฟเวอร์สูญเสียการเชื่อมต่อกับเว็บเซิร์ฟเวอร์
สาเหตุ
การตอบสนองของ HTTP/0.9 มีเนื้อความเท่านั้น แต่ไม่มีส่วนหัว เว็บไซต์ปิดการเชื่อมต่อเพื่อระบุจุดสิ้นสุดของการตอบสนอง อย่างไรก็ตาม ตัวกรองการบีบอัดตัวกรองเว็บใน ISA Server ต้องเป็น HTTP/1.0 หรือการตอบสนองของ HTTP/1.1 ตัวกรองเว็บตัวกรองการบีบอัดไม่รู้จักการตอบสนองของ HTTP/0.9 ดังนั้น ตัวกรองเว็บของตัวกรองการบีบอัดถือว่า การเชื่อมต่อสูญหาย หรือตั้งค่าใหม่ก่อนเว็บไซต์จะส่งหัวข้อการตอบสนอง HTTP ทั้งหมด
การแก้ไข
หากต้องการแก้ปัญหานี้ ให้ทำตามขั้นตอนต่างๆ ต่อไปนี้:
-
ใช้แพคเกจโปรแกรมแก้ไขด่วนที่อธิบายไว้ในบทความฐานความรู้ของ Microsoft ต่อไปนี้:
945043คำอธิบายของแพคเกจโปรแกรมแก้ไขด่วนของ ISA Server 2004:12 พฤศจิกายน 2007
-
เริ่มแผ่นจดบันทึก
-
คัดลอกรหัสต่อไปนี้ และวางลงในแผ่นจดบันทึก
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
-
บันทึกแฟ้มเป็นแฟ้มสคริปต์ Microsoft Visual Basic โดยใช้ส่วนขยายชื่อแฟ้ม.vbs ตัวอย่างเช่น ใช้ชื่อต่อไปนี้เมื่อต้องการบันทึกแฟ้ม:
EnableHotfix944114.vbs
-
ที่พรอมต์คำสั่ง การเปลี่ยนแปลงไปยังตำแหน่งที่คุณบันทึกแฟ้มในขั้นตอนที่ 4 และจากนั้น เรียกใช้คำสั่งต่อไปนี้:
cscript จะ EnableHotfix944114.vbs
หมายเหตุ เมื่อต้องการแปลงกลับไปเป็นค่าเริ่มต้น แก้ไขสคริปต์ โดยการเปลี่ยน " Const SE_VPS_VALUE = true " เพื่อ " Const SE_VPS_VALUE = false" บันทึกสคริปต์ แล้ว รันอีกครั้ง
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการหลีกเลี่ยงปัญหานี้ ปิดใช้งานตัวกรองเว็บของตัวกรองการบีบอัดในเซิร์ฟเวอร์ ISA
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"