我目前正在开发一个连接外部MySQL数据库的平台。当我尝试从azure Web应用程序连接到数据库时出现问题。我从来没有从计算机上遇到过这个问题,所以我想知道天蓝色是不是问题。我得到一个随机无法连接到每30分钟任何指定的MySQL主机。我已经坚持了好几天,所以先谢谢了。
我使用asp.net核心mysql驱动程序和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
Stack溢出上的每个其他问题都指向连接字符串中的错误,例如IP,密码,数据库名称或端口,但这是不可能的,因为我有时可以连接,有时不能连接。