อาการ
เซิร์ฟเวอร์ที่กำลังเรียกใช้ Microsoft Forefront คุกคามจัดการเกตเวย์ (TMG) 2010 อาจหยุดการยอมรับการเชื่อมต่อใหม่บนพร็อกซีของเว็บที่เฉพาะเจาะจงหรือตัวฟังเว็บ ปัญหานี้อาจเกิดขึ้นหลังจากหลายชั่วโมงในหนึ่งวันของเซิร์ฟเวอร์ uptime
สาเหตุ
ปัญหานี้เกิดขึ้นเมื่อ TMG หยุดการเชื่อมต่อใหม่บนตัวฟังเว็บที่ยอมรับ ซึ่งกรอกข้อมูลคิวรายการคงค้างสำหรับซ็อกเก็ตไดรเวอร์ (AFD) ฟังก์ชันพิเศษในเร็ว ๆ นี้ หลังจากที่คิวรายการคงค้างจะเต็ม เซิร์ฟเวอร์เริ่มต้นการตั้งค่าการเชื่อมต่อขาเข้าใหม่ ถ้าคุณตรวจสอบเซิร์ฟเวอร์ โดยใช้จอภาพของเครือข่ายในสถานการณ์นี้ คุณอาจสังเกตเห็น SYN รูประดาษ/ฟลเดอร์สำหรับแต่ละความพยายามในการเชื่อมต่อใหม่
การแก้ปัญหา
เมื่อต้องการแก้ไขปัญหานี้ ติดตั้งค่าสะสม 5สำหรับ Service Pack Forefront คามจัดการเกตเวย์ (TMG) 2010 2
สถานะ
Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
หลังจากที่คุณติดตั้งค่าสะสม 5 คุณต้องเปิดใช้งานฟังก์ชันการทำงานเป็นเวลาที่ไม่ได้ใช้งานออกยอมรับการเรียก เมื่อต้องการทำเช่นนี้ ให้ทำตามขั้นตอนเหล่านี้
-
คัดลอกสคริปต์ต่อไปนี้ลงใน Notepad และจากนั้น บันทึกแฟ้มเป็น SetAcceptIdleTimeout.vbs:
'Define the constants needed.Const strVpsGUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"
Const strVpsPropertyName = "AcceptIdleTimeout"
Const Error_FileNotFound = &H80070002
Set objArgs = wscript.Arguments
if objArgs.Count > 0 then
uAcceptIdleTimeout = objArgs(0)
end if
if objArgs.Count <> 1 then
wscript.echo "Usage: SetAcceptIdleTimeout.vbs <timeout>"
wscript.echo
wscript.echo "Set async accept timeout to <timeout> value (in sec)"
wscript.echo "To disable async accept timeout set it to 0"
wscript.Quit 2
end if
set objArray = CreateObject("FPC.Root").GetContainingArray()
Set objVPSet = OpenVPSet(objArray, strVpsGUID)
objVPSet.Value(strVpsPropertyName) = uAcceptIdleTimeout
objArray.Save()
objArray.RestartServices(1)
function OpenVPSet(objParent, strVpsGUID)
Set objVPSets = objParent.VendorParametersSets
On Error Resume Next
Set OpenVPSet = objVPSets.Item(strVpsGUID)
' Save the Err properties in case it needs to be re-raised
errNumber = Err.Number
errSource = Err.Source
errDescription = Err.Description
errHelpFile = Err.HelpFile
errHelpContext = Err.HelpContext
On Error GoTo 0
if errNumber = Error_FileNotFound Then
Set OpenVPSet = objVPSets.Add(strVpsGUID)
Elseif errNumber < 0 Then
' An error other than "file not found" occurred -- re-raise the error,
' this time not under "On Error Resume Next"
Err.Raise errNumber, errSource, errDescription, errHelpFile, errHelpContext
End If
end function
-
เรียกใช้สคริปต์บนเซิร์ฟเวอร์ TMG อย่างใดอย่างหนึ่ง ตัวอย่างเช่นเมื่อต้องการตั้งค่ารอบระยะเวลาการหมดเวลาเป็น 5 นาที เรียกใช้ต่อไปนี้จากพรอมต์คำสั่งการจัดการ:
cscript.exe SetAcceptIdleTimeout.vbs 300
-
เมื่อต้องการทำการเปลี่ยนแปลงนี้มีผลบังคับใช้ เริ่มบริการไฟร์วอลล์บนสมาชิกของแถวลำดับทั้งหมด
เมื่อต้องการเลิกทำการเปลี่ยนแปลง เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าการหมดเวลาไม่ได้ใช้งานเป็น 0:
cscript.exe SetAcceptIdleTimeout.vbs 0
ข้อมูลอ้างอิง
เรียนรู้เกี่ยวกับคำศัพท์เฉพาะทางที่ Microsoft ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์