首页 新闻 搜索 专区 学院

winserver2008上win服务偶尔出现错误模块名称: KERNELBASE.dll

0
悬赏园豆:50 [已解决问题] 解决于 2016-10-19 09:42

操作系统:winserver2008R2(特别说明是阿里云服务器)

数据库:Sql server 2008 R2

开发语言:C#(vs2012)

上面放了多个win服务都是用了ThreadPool.QueueUserWorkItem(线程池),但其中一个(假设A吧)偶尔会出现“错误模块名称: KERNELBASE.dll”这个错误,其他的win服务都没出现过,出现这个错误的时候A服务就直接崩溃了停止,没有任何异常日志输出,我在可能的地方都加了try/catch,但就是没有异常日志,网上查了很多资料都试了(重新下载KERNELBASE.dll覆盖,程序所在文件夹权限,配置文件删除多余项,检查代码死循环,检查sql语句等),然并卵,错误依然出现,求大神们指教,有碰到过的麻烦告知下怎么处理的

特别说明:不是服务启动就出现或者启动不了,是正常跑起来了,过程中会偶尔出现,有时候一天1次都不出现有时候一天出现2-3次

麻烦有碰到过此问题的兄弟分享下后面是如何解决的,园豆少了我可以再单独加

破晓幽灵的主页 破晓幽灵 | 初学一级 | 园豆:41
提问于:2016-10-17 17:07
< >
分享
最佳答案
0

多线程公用队列数据,lock锁没放对地方

破晓幽灵 | 初学一级 |园豆:41 | 2016-10-19 09:41
其他回答(2)
0

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

看能不能抓到异常信息。

收获园豆:50
Daniel Cai | 园豆:10374 (专家六级) | 2016-10-17 18:17

好的,我今晚试试

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2016-10-17 18:53

没用,没异常

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2016-10-18 11:37

@破晓幽灵: 你这代码放哪了?而且对应的方法怎么写的?

支持(0) 反对(0) Daniel Cai | 园豆:10374 (专家六级) | 2016-10-18 13:12

@Daniel Cai: 放在服务主程序里面的,方法代码:

/// <summary>
        /// 处理应用程序域内的未处理异常
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            try
            {
                var ex = e.ExceptionObject as Exception;
                Loger.Error(ex);
            }
            catch (Exception ex)
            {
                Loger.Error(ex);
            }
        }

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2016-10-18 17:48

@Daniel Cai: 不过我好像定位到问题了,因为多线程的问题,我上午改了下,到现在还没有崩过,明早上来看下如果没有崩,那就说明问题已经修复了

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2016-10-18 17:51

@Daniel Cai:已经解决了,是多线程公用队列数据的问题

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2016-10-19 09:40
0

你好,博主。我现在碰到了跟你一样的问题,票务系统的一台服务器出现这种问题,检票软件老自动关闭!有什么好的建议吗师兄

bob33 | 园豆:202 (菜鸟二级) | 2017-06-15 12:58

用上面那位仁兄的办法处理下未捕获的异常看下就知道了,记得要放在主程序里面,这样你就会看到你的服务是为什么崩溃了,我就是这样监测出来是因为多线程公用队列问题

支持(0) 反对(0) 破晓幽灵 | 园豆:41 (初学一级) | 2018-03-26 20:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册