У меня есть служба Windows C #, которая связывается с базой данных SQL Server 2008 через LINQ.В LINQ я определил несколько хранимых процедур.Мой сервис в основном просыпается каждые пару минут и просматривает базу данных для обработки.Во время обработки для каждой новой записи выполняется хранимая процедура.После обработки всех записей запускается другая хранимая процедура.У меня очень странная проблема.Для первой хранимой процедуры (запускаемой с каждой записью) все работает нормально.Процедура вызывается, функционирует должным образом, и код продолжается после вызова.Для второй процедуры (запустите одну все обработанные записи) служба просто зависает.Я не получаю сообщение об ошибке, оно не вылетает, оно все еще работает, но ничего не происходит, пока я не перезапущу службу.Если я запускаю процедуру вручную в SQL Server Management Studio, она выполняется правильно и завершается.Я надеюсь, что у кого-то есть представление о том, что здесь происходит.
В цикле каждой записи:
if (Settings.Default.SQLSpatialEnabled)
{
try
{
if ((bool) f.sdrFaultType.TripFault)
{
DataContext.sp_locateFault ((int) f.ID);
}
}
catch (Exception ex)
{
Logger.Logger.Trace ("Locate fault (" +
f.ID +
") exception: " +
ex.Message);
}
}
После всех записей:
if (Settings.Default.SQLSpatialEnabled)
{
DataContext.sp_mapFaults ();
Logger.Logger.Trace ("Faults Mapped");
}
The 'Faults Mapped 'никогда не отображается в журнале, и все в основном останавливается.