2012-04-26 2 views
0

У меня есть служба Windows. Он связывает и проверяет мою базу данных каждые 18 секунд, прежде чем отправлять сообщение с мылом внешнему клиенту. Я успешно установил сервис на своем компьютере, но он ничего не делает, в частности, и не заполняет мои журналы сервера никакими ошибками.Служба Windows не подключается к базе данных

Как узнать, где я ошибся?

Обновлено

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 ("исключение"); бросок; } }

+1

Я подозреваю, что, чтобы получить какие-либо понять из сообщества, которое вы должны будете делить содержимое 'RunApp', так как именно там происходит сбой. Исключение из 'RunApp' может привести к тому, что ваш журнал не будет записан ... –

+0

Итак, вы получаете эти два сообщения в журнале событий? Если это так, вы отправили неправильный код. Если нет, вы никогда не запускали службу или не отправили неправильный код. –

+0

Хорошо, но в последний раз, когда я поместил свой код по одному из моих вопросов, мне сказали, что он слишком длинный, и никто не хотел прокручивать его .... Я отредактирую свой вопрос, чтобы включить код, @Tony Hopkinson, мой журнал событий показывает «Служба Windows 3 запустила приложение« Приложение »и ничего больше после этого. – user1270384

ответ

0

Изменил мое исключение, как посоветуют.

поймать (Exception ех) {

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

     } 
Смежные вопросы