У меня есть служба 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 ("исключение"); бросок; } }
Я подозреваю, что, чтобы получить какие-либо понять из сообщества, которое вы должны будете делить содержимое 'RunApp', так как именно там происходит сбой. Исключение из 'RunApp' может привести к тому, что ваш журнал не будет записан ... –
Итак, вы получаете эти два сообщения в журнале событий? Если это так, вы отправили неправильный код. Если нет, вы никогда не запускали службу или не отправили неправильный код. –
Хорошо, но в последний раз, когда я поместил свой код по одному из моих вопросов, мне сказали, что он слишком длинный, и никто не хотел прокручивать его .... Я отредактирую свой вопрос, чтобы включить код, @Tony Hopkinson, мой журнал событий показывает «Служба Windows 3 запустила приложение« Приложение »и ничего больше после этого. – user1270384