ASP.NET логика / пулы соединений и обработка ошибок - PullRequest
0 голосов
/ 14 ноября 2008

Я только что загрузил свой первый ASP.NET (как часть моего изучения vb.net) и попал в ужасную неразбериху с пулом соединений (забавные вещи случаются, когда на вашем веб-сайте более 1 пользователя) все отсортировано сейчас лучше используя операторы try catch (идея была в том, чтобы учиться), НО мне было интересно, если это лучший / финальный метод, а теперь, если попытка не удалась, МНОГО деталей на странице не размещены / не обновлены , так что, если вы выполняете какую-то работу с базой данных и попытка не удалась, вы перезагружаете страницу ... перенаправляете на себя и надеетесь, что она сработает в следующий раз ... или просто сообщаете пользователю, что произошла ошибка, и ему следует повторить попытку?

Спасибо

Ответы [ 3 ]

0 голосов
/ 16 ноября 2008

Если произошла непредвиденная ошибка, перенаправьте пользователя на страницу с ошибкой, поскольку это может произойти и в следующий раз.

Вы просматривали операторы "Using" для соединений с БД и считывателей?

0 голосов
/ 16 ноября 2008

Вы должны обязательно использовать операторы using для всех объектов, которые реализуют IDisposable (таких как соединения и читатели). Оператор 'using' преобразуется в блок try-finally под оболочкой и гарантирует, что Dispose () вызывается даже в случае возникновения ошибки.

Вот пример кода:

using (SqlConnection conn = new SqlConnection(this.connectionString))
{
    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "LoadFromRepository";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@ID", fileID);

        conn.Open();
        using (SqlDataReader rdr =
                   cmd.ExecuteReader(CommandBehavior.CloseConnection))
        {
            while (rdr.Read())
            {
                // do something with read data
            }
        }
    }
}
0 голосов
/ 14 ноября 2008

Я никогда не буду автоматически перенаправлять и надеюсь, что это сработает в следующий раз (вы можете попасть в бесконечный цикл).

Сообщите пользователю и при необходимости ссылку, чтобы повторить попытку.

Возможно, вы даже захотите проанализировать свое исключение, чтобы увидеть, поможет ли еще одна попытка. Некоторые исключения действительно являются ошибками, и другая попытка не поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...