Problemi con SQL Server su IP pubblico

venerdì 05 gennaio 2007 - 08.32

liuc Profilo | Junior Member

Ciao a tutti.
Ho provato a installare il mio sito su una macchina con IIS (e nient'altro), mentre il db l'ho posizionato su una seconda macchina sulla quale ho installato SQL server 2005.
Il DB Server in questione ha due schede di rete (una con IP intranet e una con IP pubblico).
Quando accedo alle pagine del mio sito che necessitano della connessione al DB ottengo il seguente errore:
An error occurred while establishing a connection to the server.. this failure may be caused by the fact that under the default settings sql server does not allow remote connection.(provider: Named Pipes Provider, error :40 - could not open a connection to sql server)

In relata il db è configurato per ricevere connessioni in remoto (se da una macchina all'interno della rete interna creo una connessione al db sull'ip interno la connessione riesce, mentre sull'ip pubblico no).
Ho provato (sempre che abbia seguito la procedura corretta) a mettere in ascolto il db sull'indirizzo IP pubblico ma senza risultato .

Un ultima domanda (perdonate l'ignoranza) sulla macchina che in questo caso funge da web server è necessario installare i componenti client di sql server ?

Vi ringrazio.

us01739 Profilo | Expert

Non è che magari hai soltanto un problema di firewall?
Prova a dare un'occhiata qui:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;914277

Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

liuc Profilo | Junior Member

Non credo...non ho alcun firewall attivo al momento.

us01739 Profilo | Expert

Che sistema operativo hai sui server?
Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

liuc Profilo | Junior Member

su entrambi c'è windows 2000 professional (non sono due macchine nate come server veri e propri). Dici che è necessario installare un so server ?

us01739 Profilo | Expert

In fase di test forse non è necessario, in produzione è auspicabile....
ma secondo me il problema è legato a qualche abilitazione di porte ecc..
Faccio un paio di ricerce poi spero di riuscirti ad aiutare...

Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

liuc Profilo | Junior Member

grazie.. continuo a cercare anch'io.
bye

lbenaglia Profilo | Guru

>Ho provato (sempre che abbia seguito la procedura corretta) a
>mettere in ascolto il db sull'indirizzo IP pubblico ma senza
>risultato .

Ciao liuc,

vediamo se ho capito bene.
Stai sviluppando una web application che necessita di connettersi ad una istanza SQL Server 2005 che risiede su un server remoto sulla stessa LAN del web server.
Ricevi un errore di connessione quando da ASP (o ASP.NET) cerchi di autenticarti all'instanza, giusto?

Ora, per quale motivo hai messo in ascolto l'istanza sulla scheda di rete pubblica?!
La cosa oltre a non servire è ESTREMAMENTE pericolosa perché se per caso la porta IP utilizzata dall'istanza viene esposta su Internet, rischi di subire attacchi di tipo DoS o peggio di accesso/modifica/cancellazione dei dati (nel caso riescano ad autenticarsi).

Per risolvere i problemi di autenticazione, prova a seguire i suggerimenti presenti in questo thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=10971

>Un ultima domanda (perdonate l'ignoranza) sulla macchina che
>in questo caso funge da web server è necessario installare i
>componenti client di sql server ?
Se stai sviluppando pagine ASP classiche che utilizzano ADO necessiti dell'MDAC (l'ultima versione la trovi qua http://www.microsoft.com/downloads/details.aspx?familyid=78CAC895-EFC2-4F8E-A9E0-3A1AFBD5922E&displaylang=en), diversamente se sviluppi in .NET necessiti delle librerie client incluse nel .NET framework.

>Vi ringrazio.
Prego.

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

liuc Profilo | Junior Member

Cerco di esporre nel modo più chiaro possibile la situazione:
sto sviluppando un sito per la mia organizzazione con l'idea di dare in hosting l'applicazione ma di tenere il Db su un server interno (questa al momento è la volontà del dirigente).
ho installato su una macchina il sito (web server) e su un'altra il db (db server). dal momento che alcune pagine sono dinamiche è nata l'esigenza di testare la comunicvazione su macchine con ip pubblico (web e db server).
Qui è nato il problema che ho esposto.

lbenaglia Profilo | Guru

>sto sviluppando un sito per la mia organizzazione con l'idea
>di dare in hosting l'applicazione ma di tenere il Db su un server
>interno (questa al momento è la volontà del dirigente).
OK.

>ho installato su una macchina il sito (web server) e su un'altra
>il db (db server).
OK.

>dal momento che alcune pagine sono dinamiche
>è nata l'esigenza di testare la comunicvazione su macchine con
>ip pubblico (web e db server).
Qua non ti seguo. Perché il db server deve essere esposto su Internet? Questa affermazione contraddisce la prima (la volontà condivisa del tuo dirigente )

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

us01739 Profilo | Expert

Secondo me la situazione è questa:
l'applicazione che verrà venduta è di tipo web e risiederà dai vari clienti.
Questa applicazione usa un DB.
Questo db è unico e risiede in azienda.

... io rimango dell'idea che ci siano problemi di abilitazioni di porta...
...magari senza saperlo hai un firewall che blocca il traffico tcp sulla porta 1433, che dovrebbe essere quella di default di SQLServer....

Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

liuc Profilo | Junior Member

Scusate, magari è l'approccio che sto seguendo a dare problemi... e vorrei sapere in che altro modo fare.
Il sito è quello di un ente (come neo assunto mi hanno appioppato sta grana) e il dirigente vorrebbe tenere in locale il db (possibili dati sensibili).
Alcune pagine del sito hanno bisogno di leggere i dati dal DB ; pensavo che fosse necessario avere il db accessibile sull'ip pubblico in modo che le richieste dal web server (posto chissà dove sul ISP) potessero essere soddisfatte.
Ripeto, non ho esperienza nello sviluppo di siti, in che modo posso procedere altrimenti ?Se metto il db in un server interno dell'azienda come deve essere fatta la stringa di connessione per potervi accedere in remoto su internet?

us01739 Profilo | Expert

... sì, allora credo avessimo tutti capito una cosa diversa

Per quanto mi riguarda, la cosa migliore a questo punto sarebbe o avre tutto presso il tuo ISP oppure tutto in locale rendendo accessibile il webserver da internet.

A questo punto però il tutto si complica, nel senso che sicuramente devi implementare una soluzione con sistemi operativi server (abolire W2000 pro !!!!!!) , software di protezione, registrazioni domini, ipfissi ecc...

Per quanto riguarda gli ISP, è vero ce ne sono alcuni "..chissa sparsi dove.." che vanno bene per il sito di ricette della mamma, ma molti altri che sono perfettamente in grado di fornirti una adeguata professionalità.... ovviamente proporzionale all'investimento di money!!!
Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

lbenaglia Profilo | Guru

>Alcune pagine del sito hanno bisogno di leggere i dati dal DB
>; pensavo che fosse necessario avere il db accessibile sull'ip
>pubblico in modo che le richieste dal web server (posto chissà
>dove sul ISP) potessero essere soddisfatte.

Quindi il web server non è nella vostra farm? E' in hosting presso un Internet Provider?

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

liuc Profilo | Junior Member

Al momento il sito non esiste nemmeno, lo sto sviluppando ora e volevo testarlo in una configurazione il più possibile simile a quella che dovrebbe essere : web server fornito da un ISP e db server locale .
Una domanda he mi pongo, in genere, è questa : se una società vuole tenere il db (proteggere dati sensibili) è costretta a gestirsi anche il web server? In caso contrario come possono comunicare le due macchine ?
Qualora anche il db fosse dato in hosting, per l'aggiornamento devo prevedere una area riservata da cui inserire/modificare i contenuti giusto?

lbenaglia Profilo | Guru

>Al momento il sito non esiste nemmeno, lo sto sviluppando ora
>e volevo testarlo in una configurazione il più possibile simile
>a quella che dovrebbe essere : web server fornito da un ISP e
>db server locale .
OK.

>Una domanda he mi pongo, in genere, è questa : se una società
>vuole tenere il db (proteggere dati sensibili) è costretta a
>gestirsi anche il web server? In caso contrario come possono
>comunicare le due macchine ?
Io lo farei tramite web services.
In locale al db server avrai un web server esposto su internet che interroga il db esponendo pubblicamente i dati sottoforma di web services (ovviamente sotto autenticazione).
Il web server del sito in host si connette al web server aziendale al quale demanda l'esecuzione di un web service (che a sua volta effettua la query in tutta sicurezza sul db).

>Qualora anche il db fosse dato in hosting, per l'aggiornamento
>devo prevedere una area riservata da cui inserire/modificare
>i contenuti giusto?
Giusto. In genere gli hoster espongono una interfaccia web di amministrazione che ti permette di fare manutenzione ai dati del tuo db.

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

liuc Profilo | Junior Member

se il capo non cambia idea credo proprio che farò così. Grazie mille.
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