当前位置: 代码迷 >> C# >> Window服务中止 异常
  详细解决方案

Window服务中止 异常

热度:15   发布时间:2016-05-05 04:37:46.0
Window服务中止 错误
Application: Jinri.AutoTicket.RefundTicketService.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
   at Jinri.Framework.CommandRunner.WorkerBase.DoWork()
   at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
   at System.Threading.ExecutionContext.runTryCode(System.Object)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.ThreadHelper.ThreadStart()




------解决思路----------------------

X 没代码的,只看出里面的某个对象是空引用了 Jinri.Framework.CommandRunner.WorkerBase.DoWork() 这个方法里面有个对象没有
if(xxx!=null)

   xxx.XXX();
}

之前应是xxx.XXX()造成的;
------解决思路----------------------
代码抛异常,服务程序崩溃了呗
------解决思路----------------------
引用:
Quote: 引用:


X 没代码的,只看出里面的某个对象是空引用了 Jinri.Framework.CommandRunner.WorkerBase.DoWork() 这个方法里面有个对象没有
if(xxx!=null)

   xxx.XXX();
}

之前应是xxx.XXX()造成的;

那如果过我在这个dowork()里面套一个try catch的话,是不是能够吃掉异常,从而让进程不中止?


加上try catch确实能够吃到异常,进程不终止,但是这个不影响功能吗? 线程起不来了,这个服务还能正常work吗?
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:


X 没代码的,只看出里面的某个对象是空引用了 Jinri.Framework.CommandRunner.WorkerBase.DoWork() 这个方法里面有个对象没有
if(xxx!=null)

   xxx.XXX();
}

之前应是xxx.XXX()造成的;

那如果过我在这个dowork()里面套一个try catch的话,是不是能够吃掉异常,从而让进程不中止?


加上try catch确实能够吃到异常,进程不终止,但是这个不影响功能吗? 线程起不来了,这个服务还能正常work吗?


那你想正常的Work那就要在DoWork里面去判断,try catch只能防服务退出。
------解决思路----------------------
感觉可能不是dll的问题,检查一下你自己的代码中所有变量或者对象,尽可能的调试所有对象,看看是否都有值。
dll(C,C++)报错一般都是会报System.AccessViolationException
你没有代码,所以只能猜测
------解决思路----------------------
没有环境,凭代码猜测的原因,仅供参考:
returnValue = reader.ReadToEnd();
没有close掉读写流,
 sw.Stop();
造成ReadToEnd 可能被无限期阻止

http://www.tuicool.com/articles/yEbYvi
------解决思路----------------------
引用:
Timestamp: 2015-2-12 6:52:43
Message: Thread was being aborted.

线程里的方法有异常,仔细检查线程的方法体
------解决思路----------------------
请检查你的AutoRefundTickeResponseInfo类,这个类的作用和内部的方法是否做好了线程异常处理,你的错误是由这个多线程操作类引发的。
  相关解决方案