Во время разработки настольного приложения для подключения к локальной базе данных я перемещал базу данных в сетевое расположение, и теперь каждый раз, когда я вызываю Connection.Close (), программа зависает на 5-15 секунд.Я видел эту проблему очень редко, когда база данных хранилась на локальном компьютере, но теперь, когда она находится в сети, она зависает почти каждый раз, когда я пытаюсь закрыть ().При первом обращении к базе данных я даже не запрашиваю ее, это просто тестовое соединение, которое я открываю и закрываю, чтобы убедиться, что пользователь может подключиться, но оно все еще висит слишком долго.
I 'Мы уже видели этот вопрос, заданный ранее, но никто не может предложить решение или решение, которое можно исправить, кроме как «попробуйте использовать () {}, чтобы c # очистил его».Это никак не влияет на время Close ().
Есть ли опция в строке подключения для решения этой проблемы?Кто-нибудь знает, почему это происходит?
Строка подключения, которую я использую:
CONNECTION_STRING = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\\NEWTORK\Shared\Database\Database.accdb; Persist Security Info=False;"
private void
Form_Login_Load(object sender, EventArgs e)
{
OleDbConnection Connection = new OleDbConnection();
Connection.ConnectionString = CONNECTION_STRING;
try
{
Console.Write("Connection Opening.....");
Connection.Open();
Console.WriteLine("Connection Opened");
Console.Write("Writing Status Text.....");
lbl_Status.Text = "Online";
Console.WriteLine("Written Status Text");
Console.Write("Connection Closing.....");
Connection.Close();
Console.WriteLine("Connection Closed");
}
catch (Exception Ex)
{
lbl_Status.Text = "Offline";
lbl_Status.ForeColor = System.Drawing.Color.FromArgb(255, 0, 0);
MessageBox.Show("Could not connect to Database");
}
}
В моем окне вывода я сразу вижу входящие сообщения и сообщения о состоянии записи, ноприложение зависает непосредственно перед 'Console.Write ("Закрытие соединения .....");линия.Через 5-15 секунд в окне появляется сообщение о закрытии.
В приложении много соединений, которые запрашивают базу данных, и кажется, что они зависают перед попыткой закрыть все из них.Кажется, я заметил, что повторение одного и того же запроса без закрытия приложения иногда приводит к более быстрому закрытию для повторного закрытия, но оно всегда зависает при первой попытке любого запроса.