1

私は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");

        });

なにが問題ですか ?

ありがとう、ペイマン

4

1 に答える 1