我们有一个用C#编写的Windows服务。它在跑了大约5-6个小时后就崩溃了。我们的C# Windows服务调用非托管代码,这是一个COM组件.
我从事件查看器获得的唯一错误信息是:
错误应用程序application.exe,版本2.2.2.0,邮票45ed8d14,故障模块comcomponent.dll,版本5.2.3790.3959,邮票45d70ad8,调试? 0,故障地址0x00bee7。
是否有任何方法通过在不同进程中运行非托管代码来保持windows服务的存活/持续运行?
到目前为止,我们已经尝试了AppDomain作为不同的过程,但它未能克服这个问题。
请提出一个合适的解决方案。
发布于 2010-01-04 13:11:07
即使您设计了一个新的AppDomain,它仍然是相同的过程。
既然您已经在使用COM,我认为.NET企业服务将是您的最佳解决方案。在许多其他特性中,Enterprise可以在不同的进程中承载COM对象。
发布于 2010-07-21 22:59:57
除了努力使代码尽可能健壮之外,您可能还想看看服务保护器。它将自动重新启动您的关键任务服务时,它崩溃,挂起或停止的任何原因,并将发送电子邮件,以让您知道发生了什么。利用免费30天的试用,以确保它将有助于解决您的问题。
祝好运!
https://stackoverflow.com/questions/1999407
复制相似问题