Подумайте над рефакторингом вашего OnStart()
, чтобы сделать его немного чище.Вы можете добавить операторы регистрации перед каждым оператором, чтобы узнать, куда идут дела.
Рассмотрите возможность рефакторинга ваших Log
методов, чтобы ВСЕГДА вставлять текущую метку времени, чтобы избегали повторения себя везде в вашем коде,
Обновление: если вы не можете заставить его работать, удалите ВСЕ, и у вас есть только один оператор журнала:
protected override void OnStart(string[] args)
{
Log.Log("In OnStart");
}
Затем добавьте свой код с большим количеством журналирования.
public void OnStart()
{
Log.Write("OnStart");
if (ValidateConfigSettings(out queuePath, out mailFrom, out SMTPSSLConfig))
{
Log.Write("Validated config");
msgQ = SetupMessageQueue(queuePath);
Log.Write("Set up the queue obj.");
msgQ.BeginReceive();
Log.Write("Begun queue receive.");
try
{
if (!MessageQueue.Exists(queuePath))
{
MessageQueue.Create(queuePath);
Log.Log("Message queue successfully created following location:" + queuePath);
}
else
Log.Log("Message Queue Path: " + msgQ.Path);
}
catch (Exception ex)
Log.WriteCommonLog("Error checking message queue existence:\n" + GetExceptionMessageString(ex));
}
else
Log.Write("Found bad config.");
Log.Log("Message queue started successfully.");
}