.NET 8 Windows Service中FileSystemWatcher丢失Created事件的排查与解决
.NET 8 Windows服务大文件监控Created事件丢失问题解决
场景说明
基于.NET 8的IHostedService开发Windows服务,负责监控一批文件夹,处理流程为:
- 监听文件夹内的文件创建操作
- 校验文件后缀为
.txt或.zip,且文件内容非空 - 将合规文件上传至AWS Bucket
- 上传完成后删除本地对应文件
遇到的问题
调试阶段处理小文件时,整个流程运行正常,但处理大文件时,FileSystemWatcher的Created事件会出现丢失情况。
尝试过的无效方案
- 引入生产者/消费者模式,分离事件监听与文件上传、删除的处理逻辑
- 使用SQLite存储触发事件的文件路径,确保待处理任务不丢失
以上两种方案均未能解决大文件的Created事件丢失问题。
最终解决方法
替换原有的FileSystemWatcher为FileWatcherEx组件,保留原有的文件校验、上传、删除流程,大文件的Created事件丢失问题得到解决。
内容的提问来源于stack exchange,提问作者Diego rincon
相关产品推荐
相关产品推荐

