Код: Выделить всё
public async Task InvokeAsync(HttpContext context, RequestDelegate next)
{
int commandTimeoutInSeconds;
if (context.Request.Path.StartsWithSegments("/shorterTimeout"))
{
commandTimeoutInSeconds = _appConfig.shorterTimeout;
}
else
{
var conn = new NpgsqlConnectionStringBuilder(_appConfig.ConnectionString);
if (conn.TryGetValue("Command Timeout", out object? commandTimeout))
{
commandTimeoutInSeconds = Convert.ToInt32(commandTimeout);
}
else
{
// assume a default of 30
commandTimeoutInSeconds = defaultCommandTimeoutInSeconds;
}
}
var dbContext = context.RequestServices.GetRequiredService();
dbContext.Database.SetCommandTimeout(commandTimeoutInSeconds);
await next(context);
}
Тайм-аут во время попытки чтения
но затем на других маршрутах я получаю то же самое исключение обратно, но как внутреннее исключение для
InvalidOperationException: возникло исключение, вероятно, вызванное временный сбой
Кто-нибудь знает, почему это может быть?
Я попробовал несколько вещей. Я попытался настроить запросы, отключающие исключения, чтобы посмотреть, сыграла ли свою роль их сложность. Я не видел никаких доказательств того, что это так. Я немного покопался, чтобы выяснить, может ли EF Core автоматически повторять запросы, чтобы убедиться, что это так, но в нашей кодовой базе нет ничего, что указывало бы на то, что мы включаем такое поведение, и не похоже, что это поведение включено по умолчанию.
Подробнее здесь: https://stackoverflow.com/questions/793 ... timing-out
Мобильная версия