NServiceBus.Host中的ServiceBase.RequestAdditionalTime()

NServiceBus.Host中的ServiceBase.RequestAdditionalTime(),service,timeout,nservicebus,startup,Service,Timeout,Nservicebus,Startup,我们有一个NServiceBus Windows服务,启动时需要一段时间来注册模块。我们想向服务经理请求额外的时间来正确启动。对于不使用NServiceBus的服务,这将使用ServiceBase.RequestAdditionalTime完成。使用NServiceBus.Host如何实现这一点?不幸的是,没有,我们已经提出了一个在未来版本中支持这一点的问题 解决方法是使用注册表增加服务超时: 不幸的是,没有,我们已经打开了一个在未来版本中支持此功能的问题 解决方法是使用注册表增加服务超时:

我们有一个NServiceBus Windows服务,启动时需要一段时间来注册模块。我们想向服务经理请求额外的时间来正确启动。对于不使用NServiceBus的服务,这将使用
ServiceBase.RequestAdditionalTime
完成。使用NServiceBus.Host如何实现这一点?

不幸的是,没有,我们已经提出了一个在未来版本中支持这一点的问题

解决方法是使用注册表增加服务超时:


不幸的是,没有,我们已经打开了一个在未来版本中支持此功能的问题

解决方法是使用注册表增加服务超时:


我们最终删除了NServiceBus.Host并使用了Topshelf。注意:服务启动时需要额外的配置

publicstaticvoidmain(字符串[]args)
{
HostFactory.Run(hf=>
{
高频服务(svc=>
{
ConstructUsing(mls=>newMailboxListenerService());
svc.启动时((mls,控制)=>mls.启动(控制));
停止时(mls=>mls.Stop());
});
});
}
公共类MailboxListenerService
{
私人RunWebApi(webApiRunner),;
公共邮箱ListenerService()
{
}
公用bool启动(主机控制主机控制)
{
hostControl.RequestAdditionalTime(TimeSpan.FromSeconds(60));
var kernel=新的标准内核(新的MailboxListenerModule());
用()配置
.DefineEndpointName(“my.endpoint.name”)
.DefiningEventsAs(t=>typeof(Messaging.Markers.IEvent).IsAssignableFrom(t))
.Log4Net(a=>{})
.NinjectBuilder(内核)
.MsmqTransport()
.MsmqSubscriptionStorage(“my.subscription.storage”)
.DisableTimeoutManager()
.DisableSecondLevelRetries()
.UnicastBus()
.ImpersonateSender(假);
_webApiRunner=kernel.Get();
_webApiRunner.Run();
返回true;
}
公共停车场()
{
_webApiRunner.Stop();
}
}

我们最终删除了NServiceBus.Host并使用了Topshelf。注意:服务启动时需要额外的配置

publicstaticvoidmain(字符串[]args)
{
HostFactory.Run(hf=>
{
高频服务(svc=>
{
ConstructUsing(mls=>newMailboxListenerService());
svc.启动时((mls,控制)=>mls.启动(控制));
停止时(mls=>mls.Stop());
});
});
}
公共类MailboxListenerService
{
私人RunWebApi(webApiRunner),;
公共邮箱ListenerService()
{
}
公用bool启动(主机控制主机控制)
{
hostControl.RequestAdditionalTime(TimeSpan.FromSeconds(60));
var kernel=新的标准内核(新的MailboxListenerModule());
用()配置
.DefineEndpointName(“my.endpoint.name”)
.DefiningEventsAs(t=>typeof(Messaging.Markers.IEvent).IsAssignableFrom(t))
.Log4Net(a=>{})
.NinjectBuilder(内核)
.MsmqTransport()
.MsmqSubscriptionStorage(“my.subscription.storage”)
.DisableTimeoutManager()
.DisableSecondLevelRetries()
.UnicastBus()
.ImpersonateSender(假);
_webApiRunner=kernel.Get();
_webApiRunner.Run();
返回true;
}
公共停车场()
{
_webApiRunner.Stop();
}
}

谢谢。我们删除了NServiceBus.Host并使用了Topshelf。谢谢。我们删除了NServiceBus.Host并使用了Topshelf。