I have a class that inherits from the ServiceBase
class. On the OnStop
method, I stop the ServiceHost
:
protected override void OnStop()
{
if (this.serviceHost != null)
{
this.serviceHost.Close();
}
}
The thing is, I want to let the application finish processing messages from the queue before the service stops (running in ConcurrencyMode.Multiple, InstanceContextMode.Single
with MSMQ and WCF). Is there a way to do this? I tried to keep restarting the service while the queue is running, and sometimes I lose data (maybe some messages were running in the middle of the operation when it stopped)
Have you tried to RequestAdditionalTime