NÃO CONSIGO FAZER C# CONECTAR COM SQL-SERVER

VISUAL 08/02/2017 18:02:04
#471488
Estou com o seguinte problema, o código abaixo quando executado na minha maquina em ambiente IIS, funciona perfeito, consigo extrair os dados Banco SQL. Mas quando publico no UOL já não consigo conectar com o SQL. Será que no UOL ou meu código que eta errado mesmo?

[txt-color=#0000f0]using System;
using System.Data;
using System.Data.OleDb;

namespace VTSBoleto
{
public partial class Boletos : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.txtCnpjCpf.Text = [Ô][Ô];
this.txtCliente.Text = [Ô][Ô];
this.lblMsg.Text = [Ô][Ô];
}
}
protected void BtnBoletosAbertos_Click(object sender, EventArgs e)
{
DadosCliente(this.txtCnpjCpf.Text);
}
protected void grdListaBoletos_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void txtCnpjCpf_TextChanged(object sender, EventArgs e)
{
}
protected void txtCliente_TextChanged(object sender, EventArgs e)
{
}
//......Busca dados do cliente e mostra se localizar
protected void DadosCliente(string Campo)
{
OleDbConnection oledbCnn;
OleDbCommand oledbCmd;
OleDbDataReader oledbReader;
string connStr = null;
string MsgSQL = null;

MsgSQL = [Ô]Select Cliente, Nome FROM VW_Clientes WHERE CPF =[ô]538.578.106-10[ô][Ô];

connStr = [Ô]Provider=SQLOLEDB.1;Password=SENHA;Persist Security Info=True;User ID=USER;Initial Catalog=Teste;Data Source=sistemapc.xxx.xxx.br,3040;[Ô];
oledbCnn = new OleDbConnection(connStr);
try
{
oledbCnn.Open();
oledbCmd = new OleDbCommand(MsgSQL, oledbCnn);
oledbReader = oledbCmd.ExecuteReader();
DataTable schemaTable = oledbReader.GetSchemaTable();

if (oledbReader.HasRows)
{
while (oledbReader.Read())
{
this.txtCliente.Text = oledbReader.GetDecimal(0) + [Ô] - [Ô] + oledbReader.GetString(1);
}
}
else
{
this.lblMsg.Text = [Ô]Cliente não localizado, verifique o dados informado![Ô];
}
oledbReader.Close();
oledbCmd.Dispose();
oledbCnn.Close();
}
catch
{
this.lblMsg.Text = [Ô]Falha na conexão SQL-Server![Ô];
}
}
}
}[/txt-color]
MARCOSLING 08/02/2017 20:20:02
#471490
Onde está hospedado o SqlServer?


VISUAL 09/02/2017 08:20:56
#471492
Servidor esta em um cliente, mas o server SQL esta com porta liberada para acesso remoto que é o Data Source.
MARCOSLING 09/02/2017 14:26:05
#471500
E qual é a mensagem de erro?
KERPLUNK 10/02/2017 00:59:58
#471523
Amigo, não tenho certeza exatamente do que você quer fazer, mas acho que você está pensando ao contrário de como deveria ser essa estrutura. Não é o servidor que acessa o cliente, mas sim o contrário.
VISUAL 10/02/2017 14:34:03
#471538
Olá Kerplunk, obrigado pelo retorno.

Estou com seguinte cenário:
- Um servidor SQL Server 2014, configurado na empresa do cliente para aceitar acesso remoto, porta liberada.
Da nossa empresa usando SQL Server Management Studio 2012 consigo acesso ao servidor.

- Com o código [Ô]C#[Ô] que coloquei na primeira mensagem, sendo executado no IIS na minha maquina consigo acesso ao SQL Server 2014

- Quando publico esse código no [Ô]UOL[Ô], já não consigo acesso ao SQL Server 2014
Só retorna tempo excedido ou Servidor desconhecido

- Configuramos aqui na empresa uma maquina com SQL Server 2005, liberamos uma porta para acesso e acontece a mesma coisa.
Usando IIS conseguimos, quando publicamos no UOL não acessa mais.
Tentei usando [Ô]System.Data.SqlClient[Ô] e [Ô]System.Data.OleDb[Ô] pra ver se conseguia acesso ao banco de dado, mas o retorno é erro.

[ ][ô]s
OCELOT 10/02/2017 14:59:30
#471541
Resposta escolhida
Se está usando SQL Server deveria usar o System.Data.SqlClient, mas ainda é estranho um sistema hospedado na internet acessar um banco de dados que está na empresa.

Mas de qualquer forma o problema provavelmente é com o UOL, se está dando erros de timeout ou de servidor desconhecido é bem provável que eles estejam bloqueando conexões de saída, ou que não estejam conseguindo resolver o endereço do servidor que você passou.

As únicas coisas que consigo pensar em testar ai é trocar o endereço do servidor na sua string de conexão pelo IP do seu cliente, para descobrir se não pode ser apenas do servidor da UOL não estar conseguindo resolver o DNS, e a outra seria testar ver se usando a porta padrão não funciona, e para isso seria necessário alterar no seu cliente a porta que está aceitando as conexões do SQL Server.

De resto acho que só falando com a UOL mesmo para saber se bloqueiam ou não esse tipo de conexão e se tem alguma forma de liberar.
VISUAL 10/02/2017 15:19:00
#471543
Infelizmente o cliente não quer colocar os dados no SQL Server do UOL, então fomos obrigados a tentar forçar essa comunicação.

Vou alterar a string de conexão para o IP e depois alterar a porta para a padrão.

Se não der certo, ai é reunião pra expor o fato e convencer o cliente.

OCELOT 10/02/2017 17:14:42
#471548
Ainda se for falar com o cliente sobre colocar no servidor remoto o banco de dados não se esqueça que no geral os provedor não permitem o uso de bancos de dados hospedados em servidores compartilhados diretamente por programas remotos, no geral está no contrato que só pode ser usado remotamente para o gerenciamento do mesmo, ou seja, para usar o Management Studio, para ter acesso remoto pelo seu programa só com a criação de um webservice por exemplo. Sei que existem provedores que limitam até o número de conexões remotas simultâneas.
VISUAL 10/02/2017 17:41:49
#471551
Sem acesso mesmo. Vamos pra reunião.

Obrigado a todos.
Tópico encerrado , respostas não são mais permitidas