Problema di connessione a sql server express 2005 da fastweb

mercoledì 15 novembre 2006 - 16.28

fustaman Profilo | Junior Member

Ho un problema di connessione ad un database sql server express 2005 remoto residente su una macchina con w2000 server sp4.

Sql server è configurato sia con tcp/ip che named-pipe aperte e con sql Browser attivo.
Il server ha una connessione adsl di telecom con ip statico e ho configurato il router per aprire le porte TCP 1433, e UDP 1434 come indicato sul sito di microsoft.

In effetti riesco a connettermi da qualsiasi pc senza problemi, tranne quelli sulla rete fastweb
e non è un problema di firewall sul client perchè per fare una prova l'ho elimiato dalla rete e non andava lo stesso.

Avete qualche idea? sono disperato!

lbenaglia Profilo | Guru

>Ho un problema di connessione ad un database sql server express
>2005 remoto residente su una macchina con w2000 server sp4.
>
>Sql server è configurato sia con tcp/ip che named-pipe aperte
>e con sql Browser attivo.
>Il server ha una connessione adsl di telecom con ip statico e
>ho configurato il router per aprire le porte TCP 1433, e UDP
>1434 come indicato sul sito di microsoft.

Se non utilizzi named instances puoi tranquillamente arrestare il servizio SQL Browser e chiudere la porta UDP 1434 sul firewall del server.

>In effetti riesco a connettermi da qualsiasi pc senza problemi,
>tranne quelli sulla rete fastweb
>e non è un problema di firewall sul client perchè per fare una
>prova l'ho elimiato dalla rete e non andava lo stesso.
>
>Avete qualche idea? sono disperato!

Se utilizzi una istanza di default che risponde sulla porta TCP 1433, proverei a fare eseguire ai PC client collegati via fastweb una banale telnet:

C:\>telnet <IP del tuo server> 1433

Se lo schermo "diventa nero" significa che il servizio è raggiungibile, quindi potremo concentrarci sulle cause del problema, altrimenti significa che "qualcosa" (molto probabilmente un firewall) sta bloccando la connessione.

Non sono utente fastweb ma se non sbaglio le porte aperte da questo operatore sono davvero pochine dato che tutti i loro clienti sono connessi in una sorta di LAN...

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

fustaman Profilo | Junior Member

utilizzo una named instance, che è quella di default creata all'installazione di sqlserver express che si chiama "SQLEXPRESS"

c'è modo di testare in telnet il servizio anche con le named instance?

per fastweb tutte le porte risultano aperte, o almeno cosi mi hanno detto quelli del servizio di assistenza.

lbenaglia Profilo | Guru

>utilizzo una named instance, che è quella di default creata all'installazione
>di sqlserver express che si chiama "SQLEXPRESS"
>
>c'è modo di testare in telnet il servizio anche con le named
>instance?
Certo, specifica la 1434 nella telnet:

C:\>telnet <IP del tuo server> 1434

>per fastweb tutte le porte risultano aperte, o almeno cosi mi
>hanno detto quelli del servizio di assistenza.
La telnet toglierà ogni dubbio

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

fustaman Profilo | Junior Member

Ok, ho verificato con il telnet, e sulla porta 1433 sembra funzionare perchè resta la schermata nera con

mentre sulla 1434 non riesce a connettersi

la cosa strana e che ha lo stesso comportamento anche qui da me dove ho una adsl tiscali e da dove riesco tranquillamente a connettermi al sql server remoto.

La cosa strana comunque è che prima il database era in hosting presso un provider internet e da li la cosa funzionava tranquillamente anche da fastweb, poi per questioni di velocità di accesso l'ho portato su questa macchina in una delle 2 sedi che si devono collegare al database in modo da averla in locale e rendere + veloce l'appicativo, ma da questo momento ha smesso di funzionare da fastweb.

lbenaglia Profilo | Guru

>Ok, ho verificato con il telnet, e sulla porta 1433 sembra funzionare
>perchè resta la schermata nera con
>
>mentre sulla 1434 non riesce a connettersi

Questo può significare solo 2 cose:

1) Oltre alla named instance hai installato anche una istanza di default che risponde alla porta 1433;
2) La tua named instance è configurata per utilizzare la porta 1433.

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

fustaman Profilo | Junior Member

non credo ci siano 2 istanze installate, a meno che qualcuno non ne abbia installata un'altra in precedenza e io non me ne sono accorto, per quanto riguarda la porta può darsi che alla fine lo abbia configurato la named instance cosi nei vari tentativi fatti per riuscire ad accedere, onestamente ho cambiato cosi tante volte la configurazione per riuscire ad accedere che non mi ricordo + come l'ho lasciata.

Piu tardi vado li e controllo, ma nel caso della named instance come dovrebbe essere configurata per una configurazione ottimale?

lbenaglia Profilo | Guru

>Piu tardi vado li e controllo, ma nel caso della named instance
>come dovrebbe essere configurata per una configurazione ottimale?

Non esiste alcuna differenza tra una istanza di default ed una named instance, se non il modo di referenziarle nelle stringhe di connessione, qundi valgono le stesse considerazioni.
Prova a verificare dettagliatamente la situazione in modo da procedere con basi solide

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

fustaman Profilo | Junior Member

Ok, intanto grazie mille per l'aiuto, questa sera controllo meglio la situazione e domani nel caso non fossi riuscito a risolverla ti darò maggiori dettagli.

Grazie ancora e ciao

fustaman Profilo | Junior Member

Ho fatto il punto della siutazione, e la configurazione è la seguente

Macchina W2000 server sp4
Sql server express 2005 installato conme named instance
Protocolli aperti sia tcp-ip che named-pipe

configurazione tcp-ip

Indirizzo ip1: 192.168.0.2
Attivato: Si
Attivo: Si
Porta: 1433
Porte dinamiche: vuoto

Indirizzo ip2: 127.0.0.1
Attivato: No
Attivo: Si
Porta: 1433
Porte dinamiche: vuoto

Configurazione IP All
porta: 1433
porte dinamiche vuoto

Il tutto è dietro ad un router usrobotics adsl 2+ che espone un ip pubblico statico, ed è impostato conme virtual server per mappare le porte esterne sulle stesse porte del server interno.
Sono aperte le porte 1433 tcp e 1434 udp.

lbenaglia Profilo | Guru

>Macchina W2000 server sp4
>Sql server express 2005 installato conme named instance
>Protocolli aperti sia tcp-ip che named-pipe
>
>configurazione tcp-ip
>
>Indirizzo ip1: 192.168.0.2
>Attivato: Si
>Attivo: Si
>Porta: 1433
>Porte dinamiche: vuoto
>
>Indirizzo ip2: 127.0.0.1
>Attivato: No
>Attivo: Si
>Porta: 1433
>Porte dinamiche: vuoto
>
>Configurazione IP All
>porta: 1433
>porte dinamiche vuoto

Ottimo, dato che la voce "porte dinamiche" è vuota significa che hai impostato la porta statica 1433 per l'istanza. A questo punto puoi arrestare il servizio SQL Server Browser e chiudere sul firewall la porta UDP 1434.
Eventualmente puoi disabilitare lato server anche il protocollo Named Pipes.

Ieri hai scritto:

> Ok, ho verificato con il telnet, e sulla porta 1433 sembra funzionare perchè resta la schermata nera

Ora è chiaro quello che è successo, mappando la 1433 sulla named instance era lei che rispondeva, non una eventuale istanza di default
Se quel test l'hai eseguito da una macchina connessa tramite fasweb direi che non ci sono dubbi, la connessione avviene consuccesso.
A questo punto mi viene da dire che il problema è nella stringa di connessione.
La puoi postare?

Hai provato a definire un file .udl su un client fastweb che utilizza il provider "SQL Native Client" o "Microsoft OLEDB Provider for SQL Server" punta alla tua istanza e premere il bottone "Verifica Connessione"?

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

fustaman Profilo | Junior Member

ecco la mia stringa di connessione, tieni presente che attualmente l'applicativo è ancora in vb 6 e utilizzo ado per la connessione passando poi username e password direttamente all'apertura della connessione.

sto convertendo il codice in .net, ma attualmente è ancora in uso la versione vb6 ed il problema si presenta in quella non ho potuto testare da fastweb il comportamento della versione .net


driver={SQL Server};server=80.180.240.178\sqlexpress;database=AdArtem

lbenaglia Profilo | Guru

>driver={SQL Server};server=80.180.240.178\sqlexpress;database=AdArtem

Prova ad utilizzare nativamente il provider OLEDB per SQL Server invece che passare per l'OLEDB Provider for ODBC:

"Provider=SQLOLEDB;Data Source=80.180.240.178\sqlexpress;Initial Catalog=AdArtem;User Id=myUsername;Password=myPassword;"

sostituendo opportunamente myUsername è myPassword con la tua login e la tua password...
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

fustaman Profilo | Junior Member

eccomi di nuovo qui a rompere

niente da fare, anche utilizzando la connessione cosi da adsl accedo, da fastweb no.

Sembra quasi come se da fastweb venga utilizzata una porta diversa, che tu sappia c'è un modo per forzare la connessione su una porta precisa?

lbenaglia Profilo | Guru

>Sembra quasi come se da fastweb venga utilizzata una porta diversa,
>che tu sappia c'è un modo per forzare la connessione su una porta
>precisa?

Puoi forzare una porta TCP in 2 modi:

1) Specificare la porta direttamente nella connection string:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

2) Definire un Alias tramite la Client Network Utility (cliconfg.exe) e specificare tale alias nella stringa di connessione nella clausola Data Source.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

fustaman Profilo | Junior Member

Ok cosi sembra funzionare!!!

Alla fine era proprio un problema che su fastweb probabilmente c'è una qualche sorta di reindirizzamento di porte o altro che lo faceva lavorare su un'altra porta.

Grazie mille per l'aiuto

lbenaglia Profilo | Guru

>Ok cosi sembra funzionare!!!
>
>Alla fine era proprio un problema che su fastweb probabilmente
>c'è una qualche sorta di reindirizzamento di porte o altro che
>lo faceva lavorare su un'altra porta.

Pazzesco...

>Grazie mille per l'aiuto
Di niente.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5