Назад | Перейти на главную страницу

FileSystemWatcher Exception - достигнут предел команды сетевой BIOS.

Я пытался спросить этот вопрос на Stackoverflow, учитывая, что это связано с программированием, но, похоже, это скорее проблема сервера, чем что-либо еще.

У меня есть приложение на основе .Net framework 3.5 на Windows Server 2008, которое отслеживает 22 папки на удаленном сервере / сетевом пути. Я использую FileSystemWatcher и время от времени я получаю исключение в журнале.

System.ComponentModel.Win32Exception: достигнут предел сетевых команд BIOS.

Я пробовал следовать статья KB-810886, но поскольку мой сервер - Windows Server 2008, у меня нет ключей реестра для MaxCmds, MaxMpxCT и т.д. Я уже рассмотрел связанные вопросы по Stackoverflow, например вот этот и вот этот, но, похоже, ни один из них не решил проблему.

У меня вопрос:

Есть ли способ увеличить лимит MaxCMD в Windows Server 2008? и Нужно ли мне увеличить лимит на моем сервере, на котором размещена служба Windows, или мне следует увеличить лимит на файловом сервере (на котором есть все папки).

Вот код, который я пробовал в своем коде:

Я пробовал увеличить InternalBufferSize до MAX (64 КБ), но это не влияет на исключение.

Я определил это так:

На уровне класса:

FileSystemWatcher fsw;

В методе инициализации

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;   

Я также убеждаюсь, что утилизирую FileSystemWatcher объект при ошибке или при остановке службы. подобно

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

Мы приветствуем любую помощь или руководство в решении проблемы.