Sintomas
Um servidor que esteja a executar o Microsoft Forefront ameaça gestão Gateway (TMG) 2010 poderá deixar de aceitar novas ligações num serviço de escuta da web ou proxy da web específico. Este problema poderá ocorrer após várias horas a vários dias de funcionamento do servidor.
Causa
Este problema ocorre quando TMG deixa de aceitar novas ligações de escuta da web. Isto preenche logo que a fila de registo de segurança para o socket do função auxiliar (AFD) do controlador. Depois da fila de registo de segurança estiver cheia, o servidor começa a repor novas ligações a receber. Se monitorizar o servidor utilizando o Monitor de rede nesta situação, poderá notar um SYN, padrão de confirmação/RST para cada nova tentativa de ligação.
Resolução
Para resolver este problema, instale o Rollup 5 para o Gateway de gestão de ameaça do Forefront (TMG) 2010 Service Pack 2.
Estado
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais informações
Depois de instalar o Rollup 5, tem de activar a funcionalidade para o tempo limite inactivo aceitar chamadas. Para tal, siga estes passos:
-
Copie o script seguinte no bloco de notas e, em seguida, guarde o ficheiro como 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
-
Execute o script em um dos servidores TMG. Por exemplo definir o período de tempo limite para 5 minutos, execute o seguinte a partir de uma linha de comandos administrativa:
cscript.exe SetAcceptIdleTimeout.vbs 300
-
Para efectuar esta alteração tenha efeito, reinicie o serviço de firewall em todos os membros da matriz.
Para anular esta alteração, execute o seguinte comando para definir o limite de tempo de inactividade para 0:
cscript.exe SetAcceptIdleTimeout.vbs 0
Referências
Obter informações sobre a terminologia utilizada pela Microsoft para descrever actualizações de software.