我是 Castle Windsor 作为我的 IoC 和 TopShelf 将其作为服务运行。当我将它作为控制台应用程序运行时,它工作得很好。什么时候安装它并将其作为服务运行,过了一会儿它给了我“服务没有响应控制功能”。仅适用于 Windows 8/Windows Server 2012。它在 Windows 7 上运行良好。
当我删除BuilContainer()时,它在所有平台上都可以正常工作。
我还让我的记录器在 BuildContainer 之前记录“a0”,之后记录“a1”。将记录“a0”,但作为服务运行时不会记录“a1”。
这种方法被包括我在内的许多人使用,它适用于 Windows 7,但不适用于 Windows 8/Windows Server 2012
BuildContainer(); // builds IWindsorContainer and registers component.
HostFactory.Run(x =>
{
x.Service<IService>(config =>
{
config.ConstructUsing(o => Container.Resolve<IService>("myService"));
config.WhenStarted(o => o.Start());
config.WhenStopped(o => {o.Stop(); Container.Dispose();} );
});
x.RunAsLocalSystem();
x.SetServiceName("ServiceName");
x.SetDescription("ServiceDesc");
x.SetDisplayName("ServiceDispName");
});
怎么了 ?
谢谢,佩曼