primeira vez postando aqui! Eu não tenho pontos de reputação para imagens inline e links ainda, desculpe.
Versão resumida:
Estou investigando um problema relatado por nossos usuários. eles têm scripts em lote que copiam / mesclam / renomeam / zip / excluem rapidamente arquivos em um compartilhamento de rede e, às vezes, o lote em lote falha porque não consegue encontrar / acessar um dos arquivos.
Ao abrir o compartilhamento no Windows Explorer e atingir rapidamente a F5, isso aumenta drasticamente a taxa de erro. Deixar a pasta sozinha, fechando completamente o explorador, removeria o problema quase completamente.
Eu o reduzi a (provavelmente) ser um problema com o windows explorer ou smb2.x no windows7 e 2008r2. Win8, Win10 e 2012R2 não mostram esse problema. Quero verificar com a comunidade se isso é um erro nos meus métodos de teste ou se há realmente um bug no sistema operacional.
Versão longa, etapas para reproduzir, soluções testadas:
Para testar o problema, um arquivo de lote foi criado
Isso é executado em um loop infinito e, em um sistema sem erros de CPU / memória, ele nunca deve falhar. Mas, às vezes, simplesmente não é possível encontrar o arquivo que ele deve renomear ou ler (por exemplo, ele falha com "não é possível encontrar file.old")
aqui está uma captura de tela de exemplo:
Paragarantirqueissonãosejaumproblemanobatchfile,codifiqueiumpequenoprogramac#queessencialmentefazomesmo.Eupossoreproduziroproblema1:1comesteprograma.
Duranteoteste,noteiquequandoeutenhoapastadedestinoabertanoWindowsExplorer,oproblemaaconteceucommaisfreqüênciadoquequandoeunãotinhaapastaaberta.Eususpeitavadeumarelaçãocom"atualização automática". por "forçar" esta condição (botão F5) eu poderia reproduzir o problema agora cada vez muito rapidamente.
Então, fiz o seguinte teste: serverfault.com/questions/642254/files-not-appearing-caching-or
Desative as configurações de atualização automática do explorador no cliente win7
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoRemoteRecursiveEvents"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoRemoteChangeNotify"=dword:00000001
isso resolveu o problema ao não tocar no teclado, o programa é executado por um longo tempo sem problemas. mas assim que eu manualmente pressiono e continuo pressionando F5 para atualizar rapidamente o explorador, o problema aparece novamente:
Minhaconclusãonesteponto:afunção"refresh" dos exploradores causa um problema na transmissão de "rede", ou bloqueio de arquivo, violação de compartilhamento, etc ...?
Mais investigação: Eu queria descobrir em quais sistemas isso acontece, então eu fiz muitos testes em diferentes sistemas operacionais (sempre usando o truque de atualização da F5). Eu poderia reproduzir este problema apenas no win7 e 2008r2, win8,10 e 2012r2 ficaram livres de erros. Eu descartei as configurações de segurança da empresa executando os testes em VMs não associadas ao domínio e em computadores particulares em casa. O problema também existe lá.
a única coisa que resta a testar é a versão SMB, portanto, desativei o SMB2.x no win7 (http: //support.microsoft.com/de-de/kb/2696547)
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
resultado: o problema foi "resolvido" (mais uma solução), alternando para o SMB1.5 no windows 7.
Conclusão:
A criação / renomeação rápida de arquivos em compartilhamentos de rede durante a atualização da pasta do explorador causa problemas no win7 e no 2008r2 ao usar o SMB2.x. comutação para SMB 1.5 resolve problema. OS mais recentes não são afetados, independentemente da versão do SMB.
Minhas perguntas são:
batchfile - > pastebin.com/Dc2QHB8y
programa de teste c # - > pastebin.com/Xx11MFdr
lista de testes de sistemas - > pastebin.com/p24Jz0Aw