當我溫莎城堡作爲我的IoC和TopShelf運行它的服務。 當我運行它作爲控制檯應用程序,它工作得很好。當是時它給我安裝並運行它作爲一種服務,經過「服務沒有響應控制功能。」僅在Windows 8/Windows的Server 2012的時候我刪除BuilContainer(),它只是罰款在所有平臺上它在Windows 7「服務沒有響應控制功能」?使用IoC的
就好了。
我還做了我的記錄器記錄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");
});
有什麼不好?
感謝, Peyman的
我要求額外的時間和問題解決,但我更喜歡不這樣做,而是我在服務啓動後執行此任務。 – Peyman
很高興你有一個解決方案,然後。祝你好運! – Travis