Accesso a database remoto tramite web service

martedì 08 luglio 2008 - 12.03

Gio83 Profilo | Newbie

Salve a tutti,
Ho installato su una macchina sql server 2005 ed ho creato un database.
da un computer remoto eseguo l'accesso al database con le seguenti istruzioni
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

e tutto funziona,anche se eseguo delle query.
Il problema sorge quando provo ad accedere al database all'interno di un webservice... ottengo l'errore
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Non capisco perchè la stessa stringa di connessione se messa all'interno di una normale apllicazione funziona, ma non all'interno del web server.
Qualcuno sa che succede?
Una volta eliminato l'impossibile, quello che resta, per improbabile che sia, deve essere la verità (S.Holmes)

lbenaglia Profilo | Guru

>da un computer remoto eseguo l'accesso al database con le seguenti
>istruzioni
>
>SqlConnection connection = new SqlConnection("Data Source=GIOVANNI-LAPTOP\\SQLEXPRESS;database=Utenti;User
>id=Giovanni;Password=;Trusted_Connection=yes");

Ciao Giovanni,

hai specificato Trusted_Connection=yes ovvero hai dichiarato di voler utilizzare la Windows Authentication, di conseguenza User ID e Password verranno totalmente ignorati.

>Il problema sorge quando provo ad accedere al database all'interno
>di un webservice... ottengo l'errore
>
>Server was unable to process request. ---> Login failed for
>user ''. The user is not associated with a trusted SQL Server
>connection.
Questo significa che probabilmente nella connection string remota hai omesso Trusted_Connection=yes o Integrated Security=SSPI, specificando invece User ID e Password ma l'istanza è configurata per utilizzare esclusivamente la Windows Authentication.

Ora, che tipo di autenticazione vuoi utilizzare? Quella integrata (Windows Authentication) oppure quella nativa (SQL Server Authentication)?
Se opterai per la seconda, dovrai configurare opportunamente l'istanza per accettare anche questo tipo di autenticazione, tramite SQL Server Management Studio Express oppure intervenendo direttamente sul Registry:

"Authentication Mode"
http://msdn.microsoft.com/en-us/library/ms144284.aspx

"How to: Change Server Authentication Mode"
http://msdn.microsoft.com/en-us/library/ms188670.aspx

"Correct the SQL Server Authentication Mode in the Windows Registry"
http://www.mssqltips.com/tip.asp?tip=1441

>Non capisco perchè la stessa stringa di connessione se messa
>all'interno di una normale apllicazione funziona, ma non all'interno
>del web server.
Quale account hai specificato in IIS per quel WS?
Per funzionare l'autenticazione deve trattarsi di un utente di dominio per il quale esiste una login in SQL Server mappata ad esso.

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