В настоящее время я работаю на платформе, которая подключается к внешней базе данных MySQL.Проблема возникает, когда я пытаюсь подключиться к базе данных из веб-приложения Azure.У меня никогда не было этой проблемы с моего компьютера, поэтому мне интересно, если проблема с лазурью.Я получаю случайное сообщение, неспособное соединиться с любым из указанных хостов MySQL каждые 30 минут.Я застрял на этом в течение нескольких дней, так что спасибо заранее.
Я использую драйвер mysql asp.net с dapper для запроса базы данных.
public class MySqlContext : IMySqlContext
{
private readonly string _connectionString;
public FrigoAppContext(IConfiguration configuration)
{
_connectionString = configuration["ConnectionStrings:DefaultConnection"];
}
public MySqlConnection GetConnection()
{
return new MySqlConnection(_connectionString);
}
}
public class FacturasVentaService : IFacturasVenta
{
private readonly IMySqlContext _context;
public FacturasVentaService(IMySqlContext context)
{
_context = context;
}
public IQueryable<FacturaVenta> GetAll()
{
using (var connection = _context.GetConnection())
{
var query = @"SELECT id Id, idpedido IdPedido, idromaneio IdRomaneio,
data_emissao DataEmissao, cliente Cliente, vendedor Vendedor,
documento Documento, documento_remessa DocumentoRemessa, observacao Observacion,
transportadora Transportadora, motorista Motorista, placa_frete_terrestre PlacaFreteTerrestre,
excluido Excluido, data_entregado DataEntregado, ruc Ruc, timbrado Timbrado, endereco Direccion,
sigla_moeda SiglaMoneda, idfilial IdFilial, entregado Entregado, data_vencimento DataVencimiento FROM faturamento_venda";
return connection.Query<FacturaVenta>(query).AsQueryable();
}
}
public IQueryable<FacturaVenta> GetWhere(string where, object param = null)
{
using (var connection = _context.GetConnection())
{
var query = @"SELECT id Id, idpedido IdPedido, idromaneio IdRomaneio,
data_emissao DataEmissao, cliente Cliente, vendedor Vendedor,
documento Documento, documento_remessa DocumentoRemessa, observacao Observacion,
transportadora Transportadora, motorista Motorista, placa_frete_terrestre PlacaFreteTerrestre,
excluido Excluido, data_entregado DataEntregado, ruc Ruc, timbrado Timbrado, endereco Direccion,
sigla_moeda SiglaMoneda, idfilial IdFilial, entregado Entregado, data_vencimento DataVencimiento FROM faturamento_venda WHERE " + where;
return connection.Query<FacturaVenta>(query, param).AsQueryable();
}
}
public FacturaVenta GetById(int id)
{
using (var connection = _context.GetConnection())
{
var query = @"SELECT id Id, idpedido IdPedido, idromaneio IdRomaneio,
data_emissao DataEmissao, cliente Cliente, vendedor Vendedor,
documento Documento, documento_remessa DocumentoRemessa, observacao Observacion,
transportadora Transportadora, motorista Motorista, placa_frete_terrestre PlacaFreteTerrestre,
excluido Excluido, data_entregado DataEntregado, ruc Ruc, timbrado Timbrado, endereco Direccion,
sigla_moeda SiglaMoneda, idfilial IdFilial, entregado Entregado, data_vencimento DataVencimiento FROM faturamento_venda WHERE id = @Id;";
return connection.Query<FacturaVenta>(query, new { Id = id }).FirstOrDefault();
}
}
public int Insert(FacturaVenta factura)
{
using (var connection = _context.GetConnection())
{
var query = @"INSERT INTO faturamento_venda(idpedido,
idromaneio, data_emissao, cliente, vendedor,
documento, documento_remessa DocumentoRemessa, observacao,
transportadora, motorista, placa_frete_terrestre,
excluido, data_entregado) VALUES(@IdPedido, @IdRomaneio, @DataEmissao, @Cliente, @Vendedor,
@Documento, @DocumentoRemessa, @Observacao, @Transportadora, @Motorista, @PlacaFreteTerrestre, @Excluido, @DataEntregado)";
return connection.Execute(query, factura);
}
}
public bool Update(FacturaVenta factura)
{
using (var connection = _context.GetConnection())
{
var query = @"UPDATE faturamento_venda SET idpedido=@IdPedido,
idromaneio=@IdRomaneio, data_emissao=@DataEmissao, cliente=@Cliente, vendedor=@Vendedor,
documento=@Documento, documento_remessa=@DocumentoRemessa, observacao=@Observacao,
transportadora=@Transportadora, motorista=@Motorista, placa_frete_terrestre=@PlacaFreteTerrestre,
excluido=@Excluido, data_entregado=@DataEntregado;";
return connection.Execute(query, factura) > 0;
}
}
public bool Delete(FacturaVenta factura)
{
using (var connection = _context.GetConnection())
{
return connection.Execute("DELETE FROM faturamento_venda WHERE id = @Id", new { factura.Id }) > 0;
}
}
public void Create(FacturaVenta factura)
{
}
public int Execute(string query, object param)
{
using (var connection = _context.GetConnection())
{
return connection.Execute(query, param);
}
}
}
Все вводитсяв переходном объеме.Буду признателен за любую помощь.
Я использую MySql.Data 8.0.11 и Dapper 1.50.4
Любой другой вопрос о переполнении стека указывает на ошибку в строке подключения, такую как IP, пароль, имя базы данных или порт, но это невозможно, поскольку я иногда могу подключиться, а иногда нет.