У меня есть вопрос: как бороться с временем работы в asp.net MVC странице. При загрузке страницы, запрашивающей базу данных SQL Server, она загружает продукты. И когда-то он говорит, что время ожидания ожидания. Как с этим бороться.Подождите время ожидания работы mvc
ответ
Во избежание исключения времени ожидания ожидания при запуске очень длинных запросов измените свойства команды SQL и дайте команде подождать дольше, прежде чем вызывать таймаут.
using System;
using System.Data.SqlClient;
///
public class A {
///
public static void Main() {
string connectionString = "";
// Wait for 5 second delay in the command
string queryString = "waitfor delay '00:00:05'";
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);
// Setting command timeout to 1 second
command.CommandTimeout = 1;
try {
command.ExecuteNonQuery();
}
catch (SqlException e) {
Console.WriteLine("Got expected SqlException due to command timeout ");
Console.WriteLine(e);
}
}
}
}
Выполнение Linq для SQL запроса может занять больше времени & превышать значение по умолчанию CommandTimeout имущества класса DataContext в. Значение по умолчанию - 30 секунд. Мы можем установить значение CommandTimeout перед каждым созданием объекта DataContext LINQ to SQL и вызывать запрос.
#region Constructors
/// <summary>
/// Initializes a new FrameworkEntities object using the connection string found in the 'FrameworkEntities' section of the application configuration file.
/// </summary>
public FrameworkEntities() : base("name=FrameworkEntities", "FrameworkEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
this.CommandTimeout = 300;
OnContextCreated();
}
/// <summary>
/// Initialize a new FrameworkEntities object.
/// </summary>
public FrameworkEntities(string connectionString) : base(connectionString, "FrameworkEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
this.CommandTimeout = 300;
OnContextCreated();
}
/// <summary>
/// Initialize a new FrameworkEntities object.
/// </summary>
public FrameworkEntities(EntityConnection connection) : base(connection, "FrameworkEntities")
{
this.ContextOptions.LazyLoadingEnabled = true;
this.CommandTimeout = 300;
OnContextCreated();
}
#endregion
'command.CommandTimeout = 0;' будут бесконечными? –
Zero - это бесконечный тайм-аут. Если ответ от экземпляра SQL SERVER разбит на несколько сетевых пакетов, соединение будет неправильно настроено и будет происходить общая ошибка сети. – AnandMohanAwasthi
Я не мог найти такую документацию нигде. спасибо. –
отзыва код .. Проверьте ваш SQL запросы, сколько процессора он принимает и ресурсы .. –