protected virtual bool StartSqlDependencyListener()
{
lock (_stopLocker)
{
if (_disposing)
{
return false;
}
}
if (_notificationState == NotificationState.Disabled)
{
return false;
}
Trace.TraceVerbose("{0}Starting SQL notification listener", TracePrefix);
try
{
if (SqlDependency.Start(ConnectionString))
{
Trace.TraceVerbose("{0}SQL notification listener started", TracePrefix);
}
else
{
Trace.TraceVerbose("{0}SQL notification listener was already running", TracePrefix);
}
return true;
}
catch (InvalidOperationException)
{
Trace.TraceInformation("{0}SQL Service Broker is disabled, disabling query notifications", TracePrefix);
_notificationState = NotificationState.Disabled;
return false;
}
catch (Exception ex)
{
Trace.TraceError("{0}Error starting SQL notification listener: {1}", TracePrefix, ex);
return false;
}
}