Симптоми
Сървър, който изпълнява Microsoft Forefront Threat Management Gateway (TMG) 2010 може да спре да приема нови връзки на конкретна уеб прокси или уеб слушателя. Този проблем може да възникне след няколко часа до няколко дни на сървъра.
Причина
Този проблем възниква, когато TMG спира да приема нови връзки за уеб слушателя. Това скоро попълва чакащите на опашката за спомагателна функция (AFD) драйвер гнездото. Опашката на чакащите е пълен, сървърът започва да възстановите нови входящи връзки. Ако наблюдавате сървър чрез наблюдение на мрежата в тази ситуация, можете да забележите SYN ACK/RST модел за всеки нов опит.
Решение
За да разрешите този проблем, инсталирайте Сборен пакет за актуализация 5 за Forefront Threat Management Gateway (TMG) 2010 Service Pack 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.