0

Windowsサービスがあります。外部クライアントにsoapメッセージを送信する前に、18秒ごとにデータベースに接続してチェックします。コンピューターにサービスを正常にインストールしましたが、特に何も実行されておらず、サーバーログにエラーが表示されていません。

どこが間違っていたのかを知るにはどうすればよいですか?

更新しました

protected override void OnStart(string[] args)
    {
        timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
        timer.Interval = 15000;
        timer.Enabled = true;
        timer.Start();
        eventLog1.WriteEntry("Windows Service 3 Started");
    }

    protected override void OnStop()
    {
        eventLog1.WriteEntry("Windows Service 3 Stopped");

    }

RunAPP()は、ストアドプロシージャを介してデータベースに接続した場所です。

私の問題への洞察は素晴らしいでしょう!

  private void RunApp()
    {

        p.Start();
        string connStr = ConfigurationManager.ConnectionStrings["bbsConnectionString"].ConnectionString;
        try
        {
            SqlConnection Con = new SqlConnection(connStr);
            Con.Open();
            SqlCommand cmd = new SqlCommand("AvailableChanges", Con);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter NewSysChangeVersionParam = new SqlParameter("@NewSysChangeVersion", SqlDbType.Int);
            NewSysChangeVersion.Value = (object)NewSysChangeVersion ?? DBNull.Value;
            NewSysChangeVersion.Direction = ParameterDirection.InputOutput;
            NewSysChangeVersion.SqlDbType = SqlDbType.BigInt;
            SqlDataReader sdr = cmd.ExecuteReader();
            int sdrreader = sdr.FieldCount;
            InventoryPushSubscriptionRecord rec = new InventoryPushSubscriptionRecord();


            while (sdr.Read())
            {

                inrec.InventoryPushSubscriptionId = sdr.GetInt32(0);
                inrec.SysChangeVersion = sdr.IsDBNull(1) ? (long?)null : sdr.GetInt64(1);
                inrec.InvDate = sdr.GetDateTime(2);
                inrec.ResortId = sdr.GetInt32(3);
                inrec.RoomType = sdr.GetString(4);
                inrec.InvCount = sdr.GetInt32(5);
                inrec.ResortName = sdr.GetString(6);


                Int64 NewSysChangeVersion;
                NewSysChangeVersion = Convert.ToInt64(rec.LastSysChangeVersion);
                int ResortId;
                ResortId = inrec.ResortId;
                string RoomType;
                RoomType = inrec.RoomType;
                int avail = inrec.InvCount;
                DateTime frodte = inrec.InvDate;
                DateTime todte = inrec.InvDate;
                int NoofRatePackages = sdrreader;
                Int32 InventoryPushSubscriptionId;
                InventoryPushSubscriptionId = inrec.InventoryPushSubscriptionId;
                Int64 NewLastSysChangeVersion;
                NewLastSysChangeVersion = Convert.ToInt64(inrec.SysChangeVersion);
                if (NewSysChangeVersion != null)
                {
                    sendUpdate(NewSysChangeVersion, ResortId, RoomType, avail, frodte, todte, NoofRatePackages, InventoryPushSubscriptionId, NewLastSysChangeVersion);
                }
            }

            //    sdr.Close();
            //    sdr.Dispose();

        }

        catch (Exception ex)
        {

eventLog1.WriteEntry( "exception");を更新しました。投げる; }}

4

1 に答える 1

0

アドバイスに従って私の例外を編集しました。

キャッチ(例外例){

            eventLog1.WriteEntry(ex.Message);
            eventLog1.WriteEntry(ex.StackTrace);
            throw;

        }
于 2012-04-29T20:26:30.620 に答える