ASP.NET Core 2.0无法连接到任何指定的mysql主机Azure Web

时间:2018-05-31 19:10:48

标签: c# mysql azure asp.net-core azure-web-sites

我目前正在开发一个连接外部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,密码,数据库名称或端口,但这是不可能的,因为我有时可以连接,有时不能连接。

0 个答案:

没有答案