6.28 Windows Serviece

來源:互聯網
上載者:User

標籤:註冊   installer   改變   htm   相關   UI   cep   設定   set   

描述:

A 軟體,已經註冊了一個windows服務並啟用,現在需要在服務自己的一個類B裡增加一個欄位,服務的作用是返回一個該類型B的執行個體

做法

增加欄位,替換服務檔案,重新註冊服務並開啟,但是在A軟體內的服務類型還是老版本的,返回的B類型資料有新加的欄位,但是A軟體內服務引用的接受資料的類型還是老類型,沒有沒有新加的欄位.

 

windows服務

能建立可長時間啟動並執行可執行應用程式

體繫結構
  • System.ServiceProcess.ServiceBase -- 在建立服務時從 ServiceBase 類重寫方法並定義代碼,以確定服務在此繼承類中的運行方式。

  • System.ServiceProcess.ServiceProcessInstaller 和 System.ServiceProcess.ServiceInstaller -- 使用這些類安裝和卸載服務。

  •  ServiceController ,以與現有服務通訊並控制其行為。
建立Windows服務

1 以編程方式編寫服務。

2 用SV模板建立服務

兩種方式都要做以下事情

  • 設定 ServiceName 屬性。

  • 為你的服務應用程式建立必要的安裝程式。

  • 替代並指定 OnStart 和 OnStop 方法的代碼,以自訂你的服務的行為方式。

  • 添加服務應用程式所必要安裝程式
  • 通過從“產生”菜單選擇“產生解決方案”來產生你的項目
  • 安裝服務
添加服務應用程式所必要安裝程式

  切換到設計,右鍵添加安裝程式

  介面上產生兩個檔案serviceInstaller1,serviceProcessInstaller1

  一個可以調整服務啟動類型,一個設定賬戶可存取權限

  ServiceProcessInstaller 組件適用於項目中的所有單個服務安裝程式。

  添加的安裝程式和你的服務主體之間好像沒有啥關係,只是記錄一下這個服務的

安裝windows服務(由類產生的服務)

管理員方式開啟vstool下的VS2012 開發人員命令提示,cd到exe目錄下,installutil xxx.exe(普通管理員的cmd不行)

然後就安裝,啟動服務

(我的測試程式是open一個檔案,但是檔案沒被開啟,手動再開啟會顯示檔案被佔用,可能這個服務一點介面相關的都不能有)

 

 

結論

windows服務不同於普通的exe執行檔案,周期決定於應用程式,windows服務的生命週期長

用installutil方式將應用程式註冊為服務

 

關於問題:

為什麼服務更新不對?

因為我更改了服務地址:原來是http://192.168.40.31:8400/ACal/BaseService/mex

後來我註冊的服務的地址是:http://192.168.40.31:8700/ACal/BaseService/mex

本機上註冊的服務連接埠改變了,軟體引用一個沒有服務的地址,自然更新不了服務

 

6.28 Windows Serviece

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.