我已经试过在Stackoverflow上提出这个问题 ,考虑到它与编程有关,但它似乎更像是一个服务器问题。
我在Windows Server 2008上安装了基于.NET Framework 3.5的应用程序,它监视远程服务器/networkingpath上的22个文件夹。 我正在使用FileSystemWatcher
,每FileSystemWatcher
我会在日志中得到一个exception。
System.ComponentModel.Win32Exception:已达到networkingBIOS命令限制。
我已经尝试过下面的文章KB-810886 ,但是因为我的服务器是Windows Server 2008,我没有MaxCmds
, MaxMpxCT
等registry项。我已经看过Stackoverflow上的这个和这一个 ,但没有他们似乎已经解决了这个问题。
我的问题是:
有没有办法增加Windows Server 2008中MaxCMD的限制? 和我必须增加我的服务器托pipeWindows服务的限制,或者我应该增加文件服务器(其中包含所有文件夹)的限制。
这里是我在我的代码中试过的代码:
我已经尝试增加InternalBufferSize到MAX(64K),但它没有任何影响的exception。
我已经将其定义为:
在课堂上:
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();
任何帮助或指导解决这个问题表示赞赏。