У меня есть следующий код:
class Program
{
static void Main()
{
var connection = new SqlConnection("myConnectionString");
connection.Open();
connection.StateChange += HandleSqlConnectionDrop;
Console.WriteLine("Hi");
Console.ReadLine();
}
private static void HandleSqlConnectionDrop(object connection, StateChangeEventArgs args)
{
Console.WriteLine("DB change detected");
}
}
Я запускаю приведенный выше код во время работы экземпляра SQL-сервера. Затем я приступаю к выполнению
SHUTDOWN WITH NOWAIT;
на экземпляре сервера sql, к которому подключена программа. Затем я наблюдаю, как служба SQL-сервера останавливается. Однако я никогда не вижу в выводе сообщения «Обнаружено изменение БД». Почему это?
Кроме того: я увижу вызов обработчика StateChange, если затем попытаюсь выполнить операцию над соединением SQL, но никогда раньше. Можно ли как-то изменить это поведение?
connection.Open()
после.StateChange+=...
, чтобы убедиться, что это работает. - person Alex Kudryashev   schedule 25.05.2016select 1
- person alex.b   schedule 27.05.2016