0

我遇到了 Windows 服务的问题 - 部署后service_Start尝试失败(超时)。在第二次尝试时,它基本上成功了。我试过增加超时,但没有帮助。该服务没有依赖关系。

这是一个使用容器的c#+应用程序。实现的主类注册到 LifestyleType 。其他依赖项注册为.Topshelf (latest)Castle.Windsor (2.5.3)IMyServiceSingletontransient

该服务从 Rabbit 总线读取消息并将它们存储在 Couchbase 中。

配置代码如下所示:

HostFactory.Run(x =>                                 
            {
                x.Service<IMyService>(s =>                        
                {
                    s.ConstructUsing(name => WindsorContainerContext.Container.Resolve<IMyService>());   
                    s.WhenStarted(s => s.Start());             
                    s.WhenStopped(s =>
                                    {
                                        s.Stop();
                                        WindsorContainerContext.Container.Release(s);
                                        WindsorContainerContext.Container.Dispose();
                                    });
                });
                x.RunAsLocalSystem();                            

                x.SetDescription(serviceDescription);
                x.SetDisplayName(serviceDescription);                       
                x.SetServiceName(serviceName);

            });     

我认为也许某些东西没有正确发布并导致启动失败,但是在尝试了一些更改之后,我真的不知道还有什么可以尝试的。

我知道这可能不足以解决这个问题 - 请让我知道什么样的信息会有所帮助。我真的很想知道这里发生了什么,所以如果你能指出我在调试这个方面的正确方向,我也会很感激。

4

1 回答 1

0

所以作为一个控制台应用程序,正常调试,你通常不会超时。

所以你可以请求更多时间,但我会从请求 20-30 秒开始。如果您要求的时间过长,服务经理会忽略您的请求并且不会告诉您。

于 2014-01-24T15:22:55.783 回答