我有一个继承自ServiceBase
类的类。在OnStop
方法上,我停止了ServiceHost
:
protected override void OnStop()
{
if (this.serviceHost != null)
{
this.serviceHost.Close();
}
}
问题是,我想让应用程序在服务停止之前完成处理来自队列的消息(在ConcurrencyMode.Multiple, InstanceContextMode.Single
中使用MSMQ和WCF运行)。有没有办法做到这一点?我试图在队列运行时继续重新启动服务,有时我会丢失数据(可能是一些消息在停止时在操作过程中运行)