2011-04-28 34 views
1

我正在使用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項目 - 將是非常好的周圍。

感謝一個偉大的圖書館!

+0

您使用的是什麼版本的TopShelf? – Rik 2011-04-29 11:35:16

回答

1

https://github.com/Topshelf/Topshelf/wiki的文檔,也有http://topshelf-project.com/,但我們真的沒有太多的文件上。這對我們的郵件列表來說可能是一個更好的討論。

  1. 我們不揭露,雖然我想這是可能的,我們通過新能前和後安裝活動(http://legomaster.net/2011/02/announcing-topshelf-2- 2 /)。總體思路是,你需要設置的任何東西都會通過我們的配置API公開。你想要訪問什麼樣的關注項目感覺你現在沒有?

  2. 你看到什麼異常?在Topshelf的設計中沒有任何東西會引起這個問題。

  3. CanPauseAndContinue未設置;在github的問題跟蹤器中放下問題,我認爲這是可以解決的問題。

+0

3.「SetPausable」當前處於拉取請求中:https://github.com/Topshelf/Topshelf/pull/92 – felickz 2012-07-25 19:14:16

相關問題