【发布时间】:2011-09-28 20:13:04
【问题描述】:
我有一个每 10 分钟运行一次的 Windows 服务。每当 DLL 出现错误时,服务都不会引发错误。如何使错误传播回 Windows 服务并让它生成事件查看器消息,甚至重新开始轮询?
catch (Exception ex)
{
var errorMessage = ex.Message;
if (ex.InnerException != null)
errorMessage += " " + ex.InnerException.Message;
eventLog1.WriteEntry(errorMessage, EventLogEntryType.Error);
new Logging().LogMessageToFile(errorMessage, true);
}
【问题讨论】:
-
怎么知道DLL有错误?发生什么了?如果您想知道如何尝试通过您的服务来捕捉它,那么了解这一点非常重要。
-
我将它写入事件日志和日志文件。错误就在那里......在我写入日志文件无济于事后尝试抛出它。
-
仍然很困惑...如果您正在捕获异常并写入事件日志,那么听起来您的目标已经完成。不要忘记您必须刷新事件查看器才能看到新事件。你想做什么?你需要做这样的事情吗? catch(Exception ex) { /* todo logging here / throw ex; / 重新抛出异常 */ }
-
我会在使用 "throw new Exception();" 登录后返回并重新抛出看看它通向哪里。会回来报告的。
-
不,不要抛出一个新的空白异常,正确的形式是抛出你捕获的那个。我的评论格式很奇怪。
标签: dll windows-services