VB.Net .Net4.8 Windows Service无法写入应用程序事件日志排查
问题:VB.NET Windows服务手动日志写入失败,AutoLog功能正常
我有一个基于.NET 4.8的VB.NET程序,包含一个可执行文件和两个后台服务:
- 服务1:几年前开发,支持通过命令行参数运行多实例,日志功能正常
- 服务2:1个月前开发,作为清理任务管理服务运行,手动写入的日志完全无法生成,但AutoLog默认的启动/停止日志可以正常显示
关键细节
- 两个服务使用完全相同的日志代码,例如:
My.Application.Log.WriteEntry($"MyService for location {MyLocationID} ({MyLocationName}) is now active.") - 配置文件直接复制自服务1,仅修改应用名称部分,问题未解决
- 两者均在
OnStart()方法的第一行设置AutoLog = False;若注释该行,服务2的默认启动/停止日志会正常出现在事件日志中 - 安装方式一致:均通过
sc.exe以管理员身份安装,运行账户为本地系统账户
已尝试的排查操作
- 按照官方文档从头删除并重建app.config,确认强命名类型引用正确
- 创建全新测试服务项目,仅通过Timer每30秒写入递增计数器日志:
OnStart/OnStop内的日志无输出,但Timer_Elapsed子程序中的日志正常记录 - 确认权限:本地系统账户无日志写入权限问题
疑问
既然其中一个服务日志功能正常,且配置完全一致,我还可能忽略了什么?
内容的提问来源于stack exchange,提问作者ADY
相关产品推荐
相关产品推荐

