我正在使用Topshelf創建一個簡單的MQ閱讀服務。由於可用的文檔是稀疏的 - 我遇到了一些可能的簡單問題,我希望在這裏得到解答:使用TopShelf創建一個簡單的MQ Windows服務
1)通常 - 這將是非常好的獲得服務實例的實際服務實例,因爲有一個我想訪問的一堆方法。我怎樣才能做到這一點?
2)當調用OnStop時,我想刷新MQ並快速處理剩餘的消息。但是,在OnClose中訪問MQ會引發MQ訪問異常 - 這是按設計還是?
3)我在配置器中指定了OnPause和OnContinue重載。但是 - 服務不是暫停/繼續啓用,因爲AllowPauseAndContinue標誌未設置。什麼是最好的方式來做到這一點?
var retVal = HostFactory.New(x =>
{
x.Service<ASForwardMessageService>(s =>
{
s.SetServiceName(s_ServiceName);
s.ConstructUsing(name => CreateService());
s.WhenStarted(tc => tc.OnStart());
s.WhenStopped(tc => tc.OnStop());
s.WhenPaused(tc => tc.OnPause());
s.WhenContinued(tc => tc.OnContinue());
});
x.RunAsLocalSystem();
x.DependsOnMsmq();
x.StartAutomatically();
x.SetDescription(s_Description);
x.SetDisplayName(s_DisplayName);
x.SetServiceName(s_ServiceName);
});
順便說一句 - 有什麼文件可用於Topshelf項目 - 將是非常好的周圍。
感謝一個偉大的圖書館!
您使用的是什麼版本的TopShelf? – Rik 2011-04-29 11:35:16