CONNESSIONE A DATABASE IN REMOTO

giovedì 03 giugno 2010 - 10.51

mauri1961 Profilo | Senior Member

Dopo aver sviluppato una serie di pagine ASP.NET e averle testate con successo in locale. sono arrivato al momento di testare il tutto in remoto.

L'applicazione è posizionata su un nostro web server e attraverso l'inserimento dell'ip pubblico in explorer riesco a visualizzare correttamente la pagina iniziale e quella successiva che sottopone una ricerca.

I problemi iniziano a quel punto in quanto devo andare a leggere un database creato con sqlserver 2008 express.
Dopo aver inserito i dati per la ricerca da aprire sul database mi compare questa videata:

Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".


<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>


Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.


<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>


La stringa di connessione in locale conteneva questi dati
Data Source=SRV-DB01\SQLEXPRESS; Initial Catalog=CASSAWEB;Integrated Security=SSPI

alla quale ho sostituito in data source l'indirizzo ip al posto di SRV-DB01.

Le mie domande sono tre:

1. la pagina di errore mi indica di creare una pagina html per segnalare l'errore. Posso impostarla come pagina vuota e poi mi viene ritornato lo status code dell'errore ?
2. la comparsa di questa videata di errore mi fa presupporre che non si colleghi al database è corretta la connection strings ?
3.l'indirizzo IP da scrivere è quello INTERSERVER (10. ecc...) oppure INTERNA (192. ecc...)

Grazie, Maurizio

luxsor Profilo | Guru

Ciao Maurizio,

>Le mie domande sono tre:

>1. la pagina di errore mi indica di creare una pagina html per
>segnalare l'errore. Posso impostarla come pagina vuota e poi
>mi viene ritornato lo status code dell'errore ?
Questa ti permette di crearti una pagine d'errore personalizzata. "Non è obbligatorio"
Imposta questo nel Web.Config per effettuare il debug e vedere dovè l'errore
<customErrors mode="RemoteOnly" />

>2. la comparsa di questa videata di errore mi fa presupporre
>che non si colleghi al database è corretta la connection strings
>?
Sicuramente sarà un problema o di autenticazione o stringa di connessione!!!

>3.l'indirizzo IP da scrivere è quello INTERSERVER (10. ecc...)
>oppure INTERNA (192. ecc...)
Se l'applicazione che hai creato dovrà funzionare tramite internet, dovi mettere IP lato WAN del server, altrimenti se in locale devi mettere IP lato LAN.

Facci sapere

------------------------
Luxsor

mauri1961 Profilo | Senior Member

Ho inserito la pagina html ma si limita a visualizzarla vuota. Sarà che di html non ne so niente ma come si fa a visualizzare lo status code ?

Inoltre devo utilizzare l'applicazione su internet quindi in connection strings devo utilizzare lo stesso IP pubblico che uso per navigare con le pagine ? (nel mio caso è un 89.96 ecc...)

Inoltre per quanto riguarda l'autenticazione io utilizzo in sql server 2008 un'autenticazione windows senza l'utilizzo di utente e password (in connection string metto Integrated Security=SSPI. potrebbe essere quello il problema di mancata connessione ?

Grazie per l'aiuto.

Maurizio.

luxsor Profilo | Guru

>Ho inserito la pagina html ma si limita a visualizzarla vuota.
>Sarà che di html non ne so niente ma come si fa a visualizzare
>lo status code ?
Naturalmente.
Questo serve solo se vuoi tu personalizzarli la pagina in caso di errore, ma non è il caso tuo.
Abilita il debug e modifica il web.config come ti ho postato.


>Inoltre devo utilizzare l'applicazione su internet quindi in
>connection strings devo utilizzare lo stesso IP pubblico che
>uso per navigare con le pagine ? (nel mio caso è un 89.96 ecc...)
Si, oltre che aprire la porta per la connessione.



------------------------
Luxsor

mauri1961 Profilo | Senior Member

Scusa per il ritardo nella risposta ma sono stato impegnato. Ho provato ad aggiungere la porta (80) alla connection string ma il risultato non cambia continua a segnalare lo stesso tipo di errore.

Questa è la connection string all'interno della procedura asp.net:

Data Source=89.96.167.XXX:80\SQLEXPRESS; Initial Catalog=CASSAWEB;Integrated Security=SSPI

Grazie, Maurizio.

luxsor Profilo | Guru

>Scusa per il ritardo nella risposta ma sono stato impegnato.
>Ho provato ad aggiungere la porta (80) alla connection string
>ma il risultato non cambia continua a segnalare lo stesso tipo
>di errore.
Sono andato in confusione!!!
Su quale porta è in ascolto il tuo SQL Server?
Per default è la 1433, quindi devi vedere prima comè configurato SQL Server, per poi assegnare tale porta alla stringa di connessione.
Segui questa guida:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=10971

Poi se accedi da remoto devi utilizzare un Utente SQL Server, quindi ti consiglio di creartene uno con i permessi necessari per la tua applicazione e utilizzare una stringa di connessione del genere:

Data Source=89.96.167.XXX,1433; Network Library=DBMSSOCN; Initial Catalog=CASSAWEB;user id=NOMEUTENTE; password=PASSWORDUTENTE"

NB: Su Server dove risiede SQL Server devi aprire la Porta 1433 e configurare il firewall.



------------------------
Luxsor

mauri1961 Profilo | Senior Member

ORA FUNZIONA !!! ho inserito in sql server utente e password, ho messo la porta (era la 1434) e si collega senza problemi...

grazie, Maurizio
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5