Wcf 基礎教程 服務寄宿之 Windows 服務寄宿


wcf的寄宿方式多種多樣,今天我們一起來探討一下windows 服務的寄宿方式,其實明白了控制台的寄宿方式,在windows下的寄宿方式也是一樣,只不過是操作方式有點區別。編程代碼基本是一樣的。

我們首先創建一個window 服務應用程序,然后在service1.cs設計界面中添加安裝程序,這些都是我們創建windows服務應用程序應該熟知的步驟,我就不再贅述了,我們需要做的就是把控制台程序中的添加服務宿主的代碼拷貝到windows服務應用程序中。

 1   protected override void OnStart(string[] args)
 2         {
 3 
 4             using (ServiceHost host = new ServiceHost(typeof(CalService), new Uri("http://127.0.0.1:9999/calService")))
 5             {
 6 
 7                 host.AddServiceEndpoint(typeof(ICal), new WSHttpBinding(), "");
 8                 if (host.Description.Behaviors.Find<ServiceMetadataBehavior>() == null)
 9                 {
10                     ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
11                     behavior.HttpGetUrl = new Uri("http://127.0.0.1:999/calService/mex");
12                     behavior.HttpGetEnabled = true;
13                     host.Description.Behaviors.Add(behavior);
14                 }
15                 if (host.State != CommunicationState.Opening)
16                 {
17                     host.Open();
18 
19                 }
20             }
21         }

代碼基本沒變,唯一變的就是代碼放置的位置,我們放置到了windows服務啟動的事件中。這樣我們就可以在windows服務寄宿的時候,通過瀏覽器瀏覽到我們創建的服務元數據。

下面就是安裝這個windows服務應用程序了,我們不能像控制台程序那樣直接在vs中運行,windows服務應用程序必須安裝到操作系統中才可以。我們采用的就是installUtil.exe 這個工具,定位到我們windows程序的目錄,然后執行,就可以把服務安裝到操作系統中,如果要卸載服務,只需在安裝的路徑后面添加-u即可卸載。

 

 

安裝了服務,我們確保服務啟動以后,就可以正常在瀏覽器中瀏覽了。

上面只是簡單介紹了windows服務的編碼實現,沒有用到配置文件,和控制台程序一樣,我不再贅述了。下面說說我為什么要單獨把windows服務,操作那么簡單的單獨拿出來說呢:

  1.  windows服務可以在系統后台長時間運行,由操作系統控制。
  2. windows服務可以通過管理器方便的暫停、停止、啟動,方便管理程序。
  3. 最重要的一點就是windows服務是我們開發中常用到的,我們不可能運行一個控制台程序一直在服務器運行,因為不知道哪個人就會關閉掉,安全性較差。
  4. 當然了,簡單的運行wcf服務在windows服務中還看不出來復雜性,隨着項目的復雜,配置項也是方便管理的,因為可以停止、重新啟動。睡覺了。拜拜


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM