none
撰寫 Windows Services 的問題 ? RRS feed

  • 一般討論

  • 我寫了一個簡單的 Windows Service,但是執行時卻沒有反應,不曉得大概是啥原因 ? 很簡單的只要寫入資料庫。

    寫入資料庫的檔案單獨執行沒問題,使用 LocalSystem 執行

    又 Windows Service 要如何除錯 ?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Linq;
    using System.ServiceProcess;
    using System.Text;
    using System.Threading.Tasks;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Windows.Forms;
    using System.Timers;
    using System.IO;
    using System.Data.SqlClient;


    namespace CaptureScreenShots
    {
        public partial class Service1 : ServiceBase
        {
            public Service1()
            {
                InitializeComponent();
            }

            System.Timers.Timer timer;
            protected override void OnStart(string[] args)
            {
                try
                {
                    timer = new System.Timers.Timer();
                    timer.Interval = 3000;
                    timer.Enabled = true;
                    timer.Elapsed += Timer_Elapsed;
                    timer.Start();
                }
                catch (Exception ex)
                {
                    File.AppendAllText(@"d:\Log.txt", ex.Message);
                }

            }
            protected override void OnStop()
            {
                timer.Stop();
                timer.Enabled = false;
            }

            private void Timer_Elapsed(object sender, ElapsedEventArgs e)
            {
                using (SqlConnection conn = new SqlConnection("Initial Catalog=test1;Integrated Security=true;Server=.")) {
                    using (SqlCommand cmd = new SqlCommand("insert into Table1(column1) values ('12345')",conn)) {
                        conn.Open();
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }    
    }


    my407sw

    2017年3月18日 下午 03:50

所有回覆

  • 您可以參考這篇文件, 像偵錯一般程式一樣偵錯Windows Service, 而且免安裝:

    How to Debug or Test your Windows Service Without Installing it...

    2017年3月18日 下午 10:25
  • LocalSystem這個帳號對 SQL 有存取權限嗎?建議檢查一下這部分。

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2017年3月19日 上午 01:34
    版主
  • 你好,請問你是否在VS裡,建立"Windows Service" project?

    如果是,同project內,應該還有個program.cs,裡面應該有 下面的code 去呼叫你貼的Service1,查看一下

    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[]
    {
        new Service1()
    };
    ServiceBase.Run(ServicesToRun);


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆 標示為解答 以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2017年3月24日 上午 02:17
  • Hi my407sw,

    可以參考一下這篇 : How to Debug a Windows Service in Visual Studio

    按照裡面的步驟,試試看,

    希望能幫助到您:)


    請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

     

    Please remember to click Mark as Answer on the post that helps you.
    This can be beneficial to other community members reading the thread.

    2017年3月27日 上午 06:45