C# Windows Service OnTimer在进程结束前停止

C# Windows Service OnTimer在进程结束前停止,c#,.net,service,C#,.net,Service,我有一个Windows服务,它每15分钟运行一次,通过HTTP REST web服务同步数据。它似乎通过了大约128个HTTP请求,然后它就停止了,没有任何错误。是否存在可能导致问题的某种进程超时?如果是这样,我该如何改变这一点。我正在将每条记录写入EventViewer,无论它通过还是失败,我没有看到任何明显的错误 如果您使用的是系统.Timers.Timer来执行代码,则可能会在已用处理程序中吞没异常 大概是这样的: void elapsed_handler(object sender, E

我有一个Windows服务,它每15分钟运行一次,通过HTTP REST web服务同步数据。它似乎通过了大约128个HTTP请求,然后它就停止了,没有任何错误。是否存在可能导致问题的某种进程超时?如果是这样,我该如何改变这一点。我正在将每条记录写入EventViewer,无论它通过还是失败,我没有看到任何明显的错误

如果您使用的是
系统.Timers.Timer
来执行代码,则可能会在已用处理程序中吞没异常

大概是这样的:

void elapsed_handler(object sender, EventArgs e)
{
    try
    {
        DoWork();
    }
    catch (Exception ex)
    {
        ThreadPool.QueueUserWorkItem(
        _ => { throw new Exception("Exception on timer thread.", ex); });
    }
}

不,没有这样的限制。很有可能,这是代码中的一个bug。您是否在处理过程中停止计时器,然后在完成后再次启动它。我怀疑您的处理可能会被计时器在处理完成之前再次触发而中断。请记住,这完全是一个“暗箭伤人”的猜测,因为您没有向我们展示任何代码。我原以为是这样,但我在ASP.NET页面上运行了代码,效果很好。我将计时器事件的时间总量加起来并加倍,以消除这一问题。由于HTTP请求太多,我将把每个调用块放在一个单独的线程上,看看这是否有帮助。@ChrisLombardi您最好调试windows服务,以确保没有异常。