ASP.NET Core 2.0 не может подключиться ни к одному из указанных хостов mysql Azure Web - PullRequest
0 голосов
/ 31 мая 2018

В настоящее время я работаю на платформе, которая подключается к внешней базе данных 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, пароль, имя базы данных или порт, но это невозможно, поскольку я иногда могу подключиться, а иногда нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...