C#创建Windows服务
(1)一些非常慢的數據庫操作,不想一次性去做,想慢慢的通過服務定時去做,比如定時為數據庫備份等
(2)在.net Remoting中利用windows服務來做Host
利用vs.net我們可以在幾分鐘之內建立其windows服務,非常簡單
下面說一下步驟
1. 新建一個項目
2. 從一個可用的項目模板列表當中選擇Windows服務
3. 設計器會以設計模式打開
4. 從工具箱的組件表當中拖動一個Timer對象到這個設計表面上 (注意: 要確保是從組件列表而不是從Windows窗體列表當中使用Timer)??
5. 設置Timer屬性,Interval屬性200毫秒(1秒進行5次數據庫操作)
6. 然后為這個服務填加功能
7.雙擊這個Timer,然后在里面寫一些數據庫操作的代碼,比如
SqlConnection conn=new SqlConnection("server=127.0.0.1;database=test;uid=sa;pwd=275280");
???? SqlCommand comm=-new SqlCommand("insert into tb1 ('111',11)",conn);
???? conn.Open();
???? comm.ExecuteNonQuery();
???? conn.Close();
8. 將這個服務程序切換到設計視圖
9. 右擊設計視圖選擇“添加安裝程序”
from:http://post.blog.hexun.com/imagine18/trackback.aspx?articleid=6056177
10. 切換到剛被添加的ProjectInstaller的設計視圖
11. 設置serviceInstaller1組件的屬性:??
????? 1) ServiceName = My Sample Service
????? 2) StartType = Automatic (開機自動運行)
12. 設置serviceProcessInstaller1組件的屬性??? Account = LocalSystem
13. 改變路徑到你項目所在的bin\Debug文件夾位置(如果你以Release模式編譯則在bin\Release文件夾)
14. 執行命令“InstallUtil MyWindowsService.exe”注冊這個服務,使它建立一個合適的注冊項。(InstallUtil這個程序在WINDOWS文件夾\Microsoft.NET\Framework\v1.1.4322下面)
15. 右擊桌面上“我的電腦”,選擇“管理”就可以打計算機管理控制臺
16. 在“服務和應用程序”里面的“服務”部分里,你可以發現你的Windows服務已經包含在服務列表當中了
17. 右擊你的服務選擇啟動就可以啟動你的服務了
看看數據庫是不是一秒多了5個記錄啊
echo 請按任意鍵開始安裝客戶管理平臺的后臺服務. . .
echo.
pause
echo.
echo 清理原有服務項. . .
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil /U D:\Service\WindowsService1.exe > InstallService.log
echo.
echo 清理完畢,開始安裝后臺服務. . .
echo.
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil D:\Service\WindowsService1.exe >> InstallService.log
echo 服務安裝完畢,啟動服務. . .
net start CRMService >> InstallService.log
echo.
echo 操作結束,請在 InstallService.log 中查看具體的操作結果。
echo.
pause
?
C# Windows服務項目里的文件訪問
如果在Windows服務里訪問了配置文件或者其它文件,要在解決方案的對應的文件的屬性里,將此資源配置為復制或者如果較新則復制,這樣,在生成的目錄下面才會把文件復制過去.
在Windows服務里面,如果訪問文件,采用絕對路徑可以.如果采用相對路徑,和生成的服務文件在同一目錄下面.則要訪問此程序集下面的文件.
using?System.Collections.Generic;
using?System.Text;
using?System.Reflection;
using?System.Xml;
using?System.IO;
namespace?HDUSearch
...{
???public??class?IndexConfig
????...{
???????GetValue#region?GetValue
???????public?string?GetValue(string?key)
???????...{
???????????string?assemblyFilePath?=?Assembly.GetExecutingAssembly().Location;
???????????string?assemblyDirPath?=?Path.GetDirectoryName(assemblyFilePath);
???????????XmlDocument?xmlDoc?=?new?XmlDocument();
???????????xmlDoc.Load(assemblyDirPath?+?"\Index.config");
???????????XmlNodeList?nodeList?=?xmlDoc.SelectSingleNode("/configuration/appSettings").ChildNodes;???//獲取appSettings節點的所有子節點???
???????????foreach?(XmlNode?xn?in?nodeList)???//遍歷所有子節點???
???????????...{
???????????????XmlElement?xe?=?(XmlElement)xn;???//將子節點類型轉換為XmlElement類型???
???????????????if?(xe.GetAttribute("key").IndexOf(key)?!=?-1)
???????????????...{
???????????????????return?xe.GetAttribute("value");
???????????????????break;
???????????????}
???????????}
???????????return?"";
???????}
???????#endregion
????}
}
轉載于:https://www.cnblogs.com/lonely7345/archive/2008/06/27/1231351.html
總結
以上是生活随笔為你收集整理的C#创建Windows服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山东名酒白酒排行榜是怎样的?
- 下一篇: 上海欢乐谷恐怖项目排行榜