我这边有个C#编写的x64的windows服务,用来消费RocketMQ的数据,程序log中未记到报错信息,但每隔一段时间就没有消费数据了,重启服务又会正常运行。我今天打开事件查看器,发现有如下错误:
Win服务的代码如下:
然后记到的log如下:
并没有对应事件查看器中报错时间点的log,16:00之后的消费log第一条就是上图16:10分的。
请教怎么解决这个报错?
更新:
查到报错后会有两条Windows Error Report:
官方提供的SDK里面有demo可以参考,把listener设置成静态的就不会出现问题了。private static MessageListener listener=new MyMessageListener();
错误应用程序名称: xxxx.exe,版本: 1.0.0.0,时间戳: 0xbc2dcca8
错误模块名称: ONSClient4CPP.DLL,版本: 1.1.1.0,时间戳: 0x5bcd9d8f
异常代码: 0xc0000005
错误偏移量: 0x00000000000ef994
错误进程 ID: 0x1810
错误应用程序启动时间: 0x01d4d7ea1b77a405
错误应用程序路径: xxxx
错误模块路径: E:xxxxONSClient4CPP.DLL
报告 ID: 07570e22-43df-11e9-aa16-005056b65287
遇到了同样的问题,.net framework4.5.1,windows服务环境。现在临时解决方案是设置服务自动重启,有没有大大能解答下
var listener=new MyMessageListener();
consumer.subscribe(topic, channelCode, listener);
consumer.start();
把私有变量listener改成类级private MessageListener listener=new MyMessageListener();就可以了,不知道是不是GC把私有变量listener给回收了的原因,改了之后就正常了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。