C#中的Windows服务 - 崩溃/错误

时间:2010-01-04 13:02:24

标签: c# windows-services unmanaged

我们有一个用C#编写的Windows服务。它运行了大约5-6个小时后崩溃了。 我们的C#Windows服务调用Un-Managed代码,它是一个COM组件。

我从事件查看器获得的唯一错误信息是:

  

错误应用程序application.exe,版本2.2.2.0,邮票45ed8d14,   错误模块comcomponent.dll,版本5.2.3790.3959,邮票45d70ad8,调试?   0,故障地址0x0000bee7。

有没有办法通过在不同的进程中运行未托管代码来使Windows服务保持活动/连续运行?

截至目前,我们已尝试将AppDomain作为不同的流程,但未能解决此问题。

请提出合适的解决方案。

2 个答案:

答案 0 :(得分:1)

即使您启动了新的AppDomain,它仍然是相同的过程。

由于您已经在使用COM,我认为.NET Enterprise Services将是您的最佳解决方案。在许多其他功能中,Enterprise Services可以在不同的进程中托管您的COM对象。

答案 1 :(得分:0)

除了尝试使代码尽可能健壮之外,您还可以查看Service Protector。当它因任何原因崩溃,挂起或停止时,它会自动重启您的关键任务服务,并会向您发送电子邮件,让您知道发生了什么。利用免费的30天试用期,确保它有助于解决您的问题。

祝你好运!