FileSystemWatcher Exception - O limite do comando do BIOS da rede foi atingido

1

Eu tentei perguntar esta pergunta

Eu tenho o aplicativo baseado no .NET Framework 3.5 no Windows Server 2008, que está monitorando 22 pastas em um servidor / caminho de rede remoto. Estou usando FileSystemWatcher e, de vez em quando, recebo uma exceção no log.

System.ComponentModel.Win32Exception: The network BIOS command limit has been reached.

Eu tentei seguir o artigo KB-810886 , mas como meu servidor é o Windows Server 2008, não tenho chaves do registro para MaxCmds , MaxMpxCT etc. Já examinei questões relacionadas no Stackoverflow como this one and este , mas nenhum deles parece ter resolvido o problema.

A minha pergunta é:

Existe uma maneira de aumentar o limite de MaxCMDs no Windows Server 2008? e Eu tenho que aumentar o limite no meu servidor que hospeda o Windows Service, ou devo aumentar o limite no servidor de arquivos (que tem todas as pastas).

Aqui estão as coisas que eu tentei no meu código:

Eu tentei aumentar o InternalBufferSize para MAX (64K), mas isso não afeta a exceção.

Eu defini como:

No nível da turma:

FileSystemWatcher fsw;

No método de inicialização

fsw = new FileSystemWatcher("FolderUNC");
fsw.IncludeSubdirectories = false;
//m_fsw.InternalBufferSize = 65536; -- Commented out to default 8K
fsw.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.Size;
fsw.Renamed += new RenamedEventHandler(OnChanged);
fsw.Deleted += new FileSystemEventHandler(OnChanged);
fsw.Changed += new FileSystemEventHandler(OnChanged);
fsw.Created += new FileSystemEventHandler(OnChanged);
fsw.Error += new ErrorEventHandler(OnFileSystemWatcherError);
fsw.EnableRaisingEvents = true;   

Também estou certificando-me de que eu descarte o objeto FileSystemWatcher em Erro ou em parar o serviço. Como

if (fsw != null)
    fsw.Dispose();

Qualquer ajuda ou orientação para resolver o problema é bem-vinda.

    
por user2711965 22.05.2014 / 20:02

0 respostas