6

Sto utilizzando SQL Server 2008 R2 Express e la modalità "SQL Server and Windows Authentication" nel mio database. Posso aprire il database utilizzando Enterprise Manager, ma quando faccio funzionare la mia applicazione aspx, ottengo:Errore SQL Server 2008 R2 Express: impossibile aprire il database "PersonnelPro" richiesto dal login. L'accesso non è riuscito

Cannot open database "PersonnelPro" requested by the login. The login failed.

mia stringa di connessione web.config è:

<add name="dbString" 
    connectionString="Provider=sqloledb;Data Source=AREA51\SQLEXPRESS;Initial Catalog=PersonnelPro;User Id= ****;Password= ****" />` 

ho cercato nel web e SO, ma non è riuscito a trovare una soluzione. Qualche idea su cosa potrebbe causare questo problema?

Aggiornamento:
Guardando nel file di registro di SQL ("C: \ Programmi \ Microsoft SQL Server \ MSSQL10_50.SQLEXPRESS \ MSSQL \ Log"), ho trovato questo:

2012-12-21 05:58:00.97 Logon  Error: 18456, Severity: 14, State: 38. 
2012-12-21 05:58:00.97 Logon  Login failed for user 'PersonnelPro'. Reason: Failed to open the explicitly specified database. [CLIENT: <named pipe>] 

Questa web l'applicazione è da una società di terze parti. Quindi, tecnicamente, ho solo bisogno di configurare il mio file web.config e dovrebbe funzionare.

+1

I primi posti che vorrei iniziare sarebbero rimuovere 'Provider = sqloledb;' e controllare il nome utente e la password. – Khan

+0

Provider = sqloledb è fornito dal fornitore dell'applicazione (hanno cessato l'attività). Username e password sono stati verificati (dal momento che ho copiato uid & pwd dal file web.config, incollato in Enterprise Manager, e funziona). – DotNetRookie

+0

@JefferyKhan quando rimuovo "Provider = sqloledb" Viene visualizzato un errore che dice: Un provider OLE DB non è stato specificato in ConnectionString. Un esempio potrebbe essere "Provider = SQLOLEDB;". – DotNetRookie

risposta

2

Rimuovere lo spazio dopo il segno '=' per ID utente e password. Penso che sia interpretato come parte del valore.

Aggiornamento:

Il nuovo messaggio di errore che hai postato (Impossibile aprire il database specificato esplicitamente.) Può significare due cose:

  • Il DB con quel nome non esiste o è scritto in modo errato.
  • L'utente con cui si sta tentando di accedere non ha accesso al DB. È possibile controllare questo eseguendo exec sp_helpuser 'username' nel DB.
+0

Ho rimosso lo spazio, ma ottenendo comunque il stesso messaggio di errore. – DotNetRookie

+0

Il nome del DB era un refuso. – DotNetRookie

Problemi correlati