我想登录一个每 1 小时运行一次的 Windows 服务。我Parallel.ForEach
在我的 Windows 服务中使用。我正在使用 AdoNetAppender 登录我的 sqlserver 数据库。
ILog _log = LogManager.GetLogger(typeof(EmailJob));
上面一行的意思是,我们使用的是静态实例来登录数据库,对吧?在 AdoNetAppender 中如何保持连接?当我的 Windows 服务完成第一次迭代时,AdoNetAppender 的连接状态将是什么。它是立即关闭还是等待垃圾收集器处理?当下一次迭代开始时,它会打开一个新的连接吗?
由于我的 Windows 服务一直在运行,如果垃圾收集器需要很长时间来处理对象,打开的连接数将超过 SQL Server 的最大打开连接数限制。我需要在迭代结束时关闭连接并在迭代开始时打开连接。该怎么办?