8 messaggi dal 07 settembre 2007
Situazione: applicazione .Net 2.0 installata su vari client in rete che si connette a SqlServer2005 Express edition installato su un server con Xp Pro Sp3 64bit.
Ho configurato Sql Server per accettare connessioni Tcp/ip, ho impostato su Configuration Manager IPAll con Porta TCP=1033 ed ho lasciato vuota la casella Porte dinamiche TCP.
Ho configurato il Firewall del server aprendo la porta Tcp 1033 indicando di restringere l'accesso alla sola rete locale.
Risultato:
l'applicazione .Net 2.0 funziona (cioè si connette a Sql Server) sempre lanciandola sullo stesso server su cui è installato Sql Server, mentre sui client funziona solo se il firewall del server è disabilitato.
Per la connessione, i client, utilizzano una stringa del tipo: nome_server\sqlexpress,1033
Ultima annotazione: la rete è configurata con indirizzi ip dinamici.
Quale può essre il problema? Devo abilitare altre porte? Non uso il servizio SqlBrowser.
Grazie Pino
Modificato da pinoserra il 16 aprile 2010 12.42 -
1.976 messaggi dal 27 luglio 2005
Contributi
salve Pino,
pinoserra wrote:
Situazione: applicazione .Net 2.0 installata su vari client in rete che si connette a SqlServer2005 Express edition installato su un server con Xp Pro Sp3 64bit.
Ho configurato Sql Server per accettare connessioni Tcp/ip, ho impostato su Configuration Manager IPAll con Porta TCP=1033 ed ho lasciato vuota la casella Porte dinamiche TCP.
Ho configurato il Firewall del server aprendo la porta Tcp 1033 indicando di restringere l'accesso alla sola rete locale.
Risultato:
l'applicazione .Net 2.0 funziona sempre lanciandola sullo stesso server su cui è installato Sql Server, mentre sui client funziona solo se il firewall del server è disabilitato.
Per la connessione, i client, utilizzano una stringa del tipo: nome_server\sqlexpress,1033
Ultima annotazione: la rete è configurata con indirizzi ip dinamici. Quale può essre il problema? Devo abilitare altre porte? Non uso il servizio SqlBrowser.
Grazie Pino

in locale funziona in quanto le connessioni locali utilizzano, per impostazione predefinita, la shared memory al posto di un protocollo di rete..
sei sicuro che la porta utilizzata dall'istanza sia la 1033? se utilizzi l'allocazione dinamica della porta sarebbe meglio configurare il firewall con u'eccezione "sul programma" e non "sulla porta".. dovresti usare l'impostazione su porta statica solo nel caso che l'istanza sia stata impostata in tal senso..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
1.976 messaggi dal 27 luglio 2005
Contributi
salve ancora,
Andrea Montanari [Staff] wrote:
salve Pino,
pinoserra wrote:
Situazione: applicazione .Net 2.0 installata su vari client in rete che si connette a SqlServer2005 Express edition installato su un server con Xp Pro Sp3 64bit.
Ho configurato Sql Server per accettare connessioni Tcp/ip, ho impostato su Configuration Manager IPAll con Porta TCP=1033 ed ho lasciato vuota la casella Porte dinamiche TCP.
Ho configurato il Firewall del server aprendo la porta Tcp 1033 indicando di restringere l'accesso alla sola rete locale.
Risultato:
l'applicazione .Net 2.0 funziona sempre lanciandola sullo stesso server su cui è installato Sql Server, mentre sui client funziona solo se il firewall del server è disabilitato.
Per la connessione, i client, utilizzano una stringa del tipo: nome_server\sqlexpress,1033
Ultima annotazione: la rete è configurata con indirizzi ip dinamici. Quale può essre il problema? Devo abilitare altre porte? Non uso il servizio SqlBrowser.
Grazie Pino

in locale funziona in quanto le connessioni locali utilizzano, per impostazione predefinita, la shared memory al posto di un protocollo di rete..
sei sicuro che la porta utilizzata dall'istanza sia la 1033? se utilizzi l'allocazione dinamica della porta sarebbe meglio
configurare il firewall con u'eccezione "sul programma" e non "sulla porta".. dovresti usare l'impostazione su porta statica solo nel caso che l'istanza sia stata impostata in tal senso..
saluti

aggiungo che anche io utilizzo una porta statica, non quella che hai indicato tu ma altre, e non ho problemi di connessione remota alcuna, avendo riavviato il servizio dopo l'impostazione di porta ed avendo configurato un'eccezione per il solo protocollo TCP/IP sulla porta utilizzata.. anche io ho SQLBrowser disabilitato..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
8 messaggi dal 07 settembre 2007
Ciao Andrea, grazie per la tua risposta

Andrea Montanari wrote:
in locale funziona in quanto le connessioni locali utilizzano, per impostazione predefinita, la shared memory al posto di un protocollo di rete..

Mi spieghi come modificare l'impostazione predefinita per cui in locale viene usata la shared memory? Vorrei temporaneamente modificarla in modo che anche in locale si usi il protocollo di rete: ciò mi agevolerebbe per evitare di andare avanti e indietro nella stanza con i client per verificare se fuunziona

Grazie
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
puoi "forzare" l'utilizzo di un protocollo di rete a livello di connection string, specificando, ad esempio per il protocollo TCP/IP, il "parametro"

Network Library=dbmssocn
quindi la connection string diventera' simile a

conString = "Data Source=xxx,1033;Network Library=DBMSSOCN;Initial Catalog=myDataBase;....;"

saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
8 messaggi dal 07 settembre 2007
Comunque, la cosa che non mi spiego è il fatto che senza firewall funziona!

Dato che la stringa di connessione è "nomeServer\sqlexpress,1033" è come se il firewall non prendesse correttamente l'eccezione sulla porta.
Se fosse un problema di configurazione su Sql Server non doveva funzionare anche con firewall disabilitato.
Farò una prova usando un'altra porta...
8 messaggi dal 07 settembre 2007
Ho risolto e voglio condividere la soluzione qualora qualcun altro si trovi nelle stesse mie condizioni: era "semplicemente" non attiva sul firewall l'eccezione "Condivisione file e stampanti". E' bastato abilitare l'eccezione e anche i client sono riusciti a connettersi a sql server.

Già, ma cosa c'entra con sql server la condivisione di files e stampanti? Con sql server nulla! C'entra invece con la risoluzione del nome host del computer con il relativo indirizzo ip.
Poiché la stringa di connessione che utilizzo è del tipo: nome_host\nome_istanza,num_porta è necessario che la richiesta di connessione arrivi al pc giusto (cioè con il nome_host indicato), e questo si verifica permettendo l'accesso alle porte UDP 137 e UDP 138 che vengono aperte proprio con l'eccezione "Condivisione file e stampanti".
Mi sono accorto di questa cosa analizzando il file di log del firewall in cui erano chiaramente evidenziati i tentativi di accesso alle porte 137 e 138.
Modificato da pinoserra il 19 aprile 2010 19.23 -
Modificato da pinoserra il 19 aprile 2010 19.23 -
Modificato da pinoserra il 19 aprile 2010 19.23 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.