Eu postei essa pergunta há algum tempo em stackoverflow , mas infelizmente ainda não recebi nenhuma resposta. Na verdade, não é muito urgente, pois esse problema parece existir apenas na minha máquina - por enquanto. Mas eu tenho dito, que houve problemas semelhantes em outras máquinas dentro de nossa rede, ao usar o WMI.
A pergunta original:
Então, eu tenho esse método, que lê a cota de um usuário:
public ulong GetQuotaLimit(string username, string domain, char volume)
{
var scope = GetManagementScope(this, @"root\cimv2");
var path = new ManagementPath(
string.Format(
"Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.DeviceID=\"{0}:\"',User='Win32_Account.Domain=\"{1}\",Name=\"{2}\"'",
volume, domain, username));
var diskQuotaObj = new ManagementObject(scope, path, null);
var result = Convert.ToUInt64(diskQuotaObj.Properties["Limit"].Value);
return result;
}
Funciona bem na máquina do meu colega (~ 200ms), mas por alguma razão não funciona na minha própria máquina - demora muito mais para obter uma resposta da máquina, que mantém a cota do usuário (~ 2000ms). As especificações para ambas as máquinas são praticamente as mesmas (mesmo sistema operacional, mesmo HW) e estão localizadas na mesma rede e no mesmo domínio.
Então eu inspecionei o tráfego de rede em ambas as máquinas para este pedido e encontrei uma coisa estranha: Após o estabelecimento da conexão e a autenticação da máquina do meu colega continua imediatamente com a solicitação real (começando no quadro 491).
192.168.131.95 é a máquina que mantém a cota
192.168.131.175 é a máquina do meu colega
192.168.144.11 é minha máquina
Os registros são filtrados por esses IPs
Masminhamáquinacontinuacomumhandshakede3viasTCP(quadros90-92),depoisesperaumpouco(oquecausaoatraso)econtinuacomumasegundaautenticação(começandonoquadro126),antesdefinalmentefazeroqueésupostofazer-enviandoopedidoreal.
Parece que o cliente (minha máquina) perdeu a conexão de alguma forma, mas não vejo nenhum quadro, o que realmente indicaria isso. Eu também ouvi, que o WMI tem alguns problemas com fragmentação, mas os segmentos / datagramas são menores que a fragmentação, o limite de fragmentação usual (1500Bytes?) E wireshark não indicaram que os quadros foram remontados, então essa não deveria ser a razão. / p>
Alguém sabe por que esse comportamento ocorre?