Azure中托管的应用程序在尝试打开与Sql数据库的连接时引发此异常:
可能由于瞬时故障而引发异常。 如果要连接到Sql Azure数据库,请考虑使用 SqlAzureStrategy。
我试图关闭防火墙,但它没有工作。
我能通过sql management studio连接到sql数据库,但是网络应用程序不是。
它使用EF6连接数据库。 这是代码的和平,它引发了错误:
var usuario = Db.Usuario.Where(x => x.Login == login).FirstOrDefault();
if (usuario != null && usuario.ProfissionalID.HasValue)
{
usuario.Profissional = Db.Profissional.Where(x => x.ProfissionalID == usuario.ProfissionalID).FirstOrDefault();
}
return usuario;
我在Microsoft文章中看到,当第一次连接尝试失败时,建议使用SqlAzureStrategy尝试重新连接:
public class DbContextConfiguration : DbConfiguration
{
public DbContextConfiguration()
{
SetExecutionStrategy("System.Data.SqlClient",
() => new SqlAzureExecutionStrategy(1, TimeSpan.FromSeconds(30)));
}
}
但它似乎并不是我问题的解决方案,因为当我实现这个时,我收到了以下错误消息:
执行数据库时超出了最大重试次数(1) 使用' SqlAzureExecutionStrategy'。
进行操作
答案 0 :(得分:0)
我不相信这是一个数据库问题,否则您会看到一个非常不同的错误,它实际上表明不允许通过防火墙使用IP地址。
相反,我会尝试查看来自Markus Wagner的帖子,其中他谈到 maxRetryCount 和 maxDelay 参数。对我来说,这将是一个很好的起点,可以确保您的代码正确地设计为使用这些类。
其次,围绕使用Azure SQL服务的许多最佳实践是published。我希望确保您满足所有这些最佳实践并尽可能地调整。我会看: