Perché visualizzo "Impossibile connettersi al server: un errore di rete o specifico dell'istanza"?


379

Ottengo il seguente errore quando provo a connettermi a SQL Server:

Impossibile connettersi a 108.163.224.173.

Si è verificato un errore relativo alla rete o specifico dell'istanza durante la creazione di una connessione a SQL Server.

Il server non è stato trovato o non era accessibile. Verificare che il nome dell'istanza sia corretto e che SQL Server sia configurato per consentire connessioni remote.

(provider: Named Pipes Provider, errore: 40 - Impossibile aprire una connessione a SQL Server) (Microsoft SQL Server, errore: 1326)

Questo errore viene generato quando provo a configurare il mio database per gridview in Visual Studio 2010. Sono in perdita su come eseguire il debug di questo errore.

Come eseguiresti il ​​debug di questo errore? Quali passi devo prendere per determinare cosa sta realmente succedendo qui, oltre a quello menzionato nel messaggio di errore?


11
Un ping non è affidabile per il test della connettività di SQL Server, le richieste di eco ICMP sono disabilitate per impostazione predefinita in Windows Server. Un nome utente o una password non validi non sono affatto ciò che l'errore ti dice, è un errore completamente diverso.
Sean Airey,

1
Prova questo articolo, illustra
Sean Airey,

3
Vedi la mia risposta qui con la mia schermata se hai ricevuto questo errore con SQL Server {versione} Express, quando lo hai impostato per la prima volta. Sono tornato su StackOverflow e ho usato di nuovo la mia risposta perché era l'unica che ha funzionato. stackoverflow.com/questions/1391503/…
MacGyver

Ho avuto questo problema sul mio server virtuale quando volevo connettermi al localhost. Sembrava che ci fosse un qualche tipo di errore all'avvio del sistema operativo - nel mio caso tutto è stato risolto fortunatamente con un riavvio pulito.
Qohelet,

Oggi ho trascorso molto tempo su questo, finalmente quello che ha funzionato per me è: Open Sql Server Configuration Manager -> Protocolli per <INSTANCE> -> TCP / IP -> Indirizzi IP (scheda) . Vai all'ultima voce IP All e menziona la porta TCP 1433 . Ora riavvia SQL Server (INSTANCE) utilizzando services.msc . Dopo questo, il problema è stato risolto.
ani627,

Risposte:


301

Ho trovato utili le seguenti tecniche:

  1. Assicurarsi che il motore di database sia configurato per accettare connessioni remote :

    • Start> Tutti i programmi> SQL Server 2005> Strumenti di configurazione> Configurazione dell'area della superficie di SQL Server
    • Fare clic su Surface Area Configuration per Servizi e connessioni
    • Seleziona l'istanza che presenta un problema> Motore di database> Connessioni remote
    • Abilita connessioni locali e remote
    • Riavvia istanza
  2. Potrebbe essere necessario creare un'eccezione sul firewall per l'istanza e la porta di SQL Server che si sta utilizzando:

    • Start> Esegui> Firewall.cpl
    • Fai clic sulla scheda eccezioni
    • Aggiungi sqlservr.exe (in genere si trova in C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin, controlla le installazioni per il percorso effettivo della cartella) e porta (l'impostazione predefinita è 1433)
    • Controlla anche la stringa di connessione
  3. Verifica che i servizi del tuo server SQL siano attivi e funzionanti correttamente:

    • Vai a Tutti i programmi> Microsoft SQL Server 2008> Strumenti di configurazione> Gestione configurazione SQL Server> Servizi SQL Server
    • Verificare che lo stato del servizio SQL Server sia in esecuzione.

    Inoltre, assicurarsi che il server remoto sia nella stessa rete . Esegui sqlcmd -Lper verificare se il tuo server è incluso nell'elenco di reti.

  4. Abilita TCP / IP nella configurazione di SQL Server

    Quando due o più server SQL sono connessi in rete, effettuano tutte le comunicazioni tramite TCP / IP. La porta predefinita dell'installazione di SQL Server è 1433. Questa porta può essere modificata tramite Gestione configurazione SQL Server. TCP / IP deve essere abilitato per la connessione di SQL Server.

    • Vai a Tutti i programmi >> Microsoft SQL Server 2008 >> Strumenti di configurazione >> Gestione configurazione SQL Server >> Seleziona TCP / IP
    • Fare clic con il tasto destro su TCP / IP >> Fare clic su Abilita

    È necessario riavviare SQL Server Services per rendere effettive tutte le modifiche. Fare clic con il tasto destro e selezionare le proprietà del menu per selezionare la posizione in cui è possibile modificare la porta predefinita di SQL Server.


10
Abilitare TCP / IP nella configurazione di SQL Server è stata la soluzione per me quando si utilizza SQL Server 2014 Express.
Mike Richards,

73
Oggi ho trascorso molto tempo su questo, finalmente quello che ha funzionato per me è: Open Sql Server Configuration Manager -> Protocolli per <INSTANCE> -> TCP / IP -> Indirizzi IP (scheda) . Vai all'ultima voce IP All e menziona la porta TCP 1433 . Ora riavvia SQL Server (<INSTANCE>) utilizzando services.msc . Dopo questo, il problema è stato risolto!
ani627,

1
Stavo anche affrontando il problema particolare sul mio server Sql locale e risolto controllando i servizi locali del sistema operativo e cercando i servizi Sql specifici e avviandoli uno per uno. Ha funzionato perfettamente.
Faisal Naseer,

4
Anch'io ho avuto lo stesso problema, ho effettuato l'accesso al server sql e ho scoperto che il servizio mssqlserer è stato arrestato, avviato. Ora sono riuscito a connettermi all'istanza
Rak

15
RICORDA anche di ENABLE SQL Server Browserservizio. Ho installato un certo numero di server SQL ai miei tempi ... Eppure questo passaggio sembra avere sempre diversi scenari coinvolti :)
mschr

125

Ho ottenuto una soluzione per me:

Apri "Gestione configurazione SQL Server"

Ora fai clic su "Configurazione rete SQL Server" e fai clic su "Protocolli per nome "

Fare clic destro su "TCP / IP" (assicurarsi che sia abilitato) Fare clic su Proprietà

Ora seleziona la scheda "Indirizzi IP" e vai all'ultima voce "Tutti IP"

Immettere "Porta TCP" 1433.

Ora riavvia "SQL Server .Name". usando "services.msc" (winKey + r)

Funzionerà...


Provando questo, eppure per qualche ragione quando clicco con il tasto destro e scelgo "Proprietà" su "TCP / IP" in Windows10, non si apre la finestra di dialogo per quello. Gli altri nodi in generale nella treeview fanno apparire bene le finestre di dialogo. Qualcuno ha questo problema e idee per superarlo?
Ryan Betker - healthNCode,

3
In SQL Server 2014 utilizzare (localdb) \ mssqllocaldb invece di (localdb) \ v11.0
Shalva Avanashvili

67
Copia incollato il mio commento (che è stato pubblicato il 24 febbraio 2015 - 7 mesi prima del tuo post) come risposta senza darmi crediti! : P
ani627,

2
Questo ha funzionato. Non sono riuscito a connettermi a SQL Server 2016. Ho apportato queste modifiche e ha funzionato! Grazie.
Ankur,

1
per me funziona. ho appena dovuto avviare i servizi in "service.msc" dopo aver abilitato TCP / IP e Named Pipes in Configuration Manager.
Alif Noushad,

100

Aggiungendo il mio commento fortemente votato come risposta con schermate.

Ho trascorso molto tempo su questo, finalmente quello che ha funzionato per me è:

1) Aprire SQL Server Configuration Manager -> Configurazione di rete di SQL Server -> Protocolli per <(esempio)> -> TCP / IP (doppio clic su di esso).

inserisci qui la descrizione dell'immagine

2) Selezionare -> Indirizzi IP (scheda) .

3) Vai all'ultima voce IP All e menziona la porta TCP 1433 .

inserisci qui la descrizione dell'immagine

4) Premere Win+Re inserire services.msc .

5) Ora riavvia SQL Server <(ISTANZA)> .

inserisci qui la descrizione dell'immagine

Dopo questo, il problema è stato risolto!



Ha funzionato per me, SQL Express 2012
lost_in_magento

Ha funzionato per me in SQL Server 2012 dopo aver abilitato TCP, aggiunto il numero di porta 1433 a TCP ALL e riavviato il servizio!
Chirag Khatsuriya,

Per me, inoltre, ho dovuto consentire TCP 1433 e UDP 1434 nel Firewall
MarkusEgle,

83

Sto risolvendo il problema aprendo Servizi, quindi avviare il servizio Sql Server (Sqlexpress) .

immagine di servizio


3
Ho visto dove il servizio Windows SQL Server era impostato su Tipo di avvio manuale, quindi non è stato riavviato al riavvio. Dovrebbe essere impostato su Automatico.
robertburke,

2
Questo è esattamente quello che ho fatto, il mio stato era in esecuzione e StartupType era automatico, ma ho ancora affrontato il problema, quindi ho usato i servizi dal tipo di finestra Esegui services.mscquindi ho fatto clic con il pulsante destro del mouse su SQL Server (SQL EXPRESS) per il menu di scelta rapida e basta Interrompi e avvia il servizio di nuovo e funziona bene per me, la speranza aiuta.
Shaijut,

22

Questo errore si verifica principalmente quando il servizio SQL viene interrotto. È necessario riavviare il servizio. Per accedere a questa finestra è necessario cercare i servizi in questo modo- inserisci qui la descrizione dell'immagine

Quindi cercare SQLSERVER (MSSQLSERVER) e riavviare il servizio.

inserisci qui la descrizione dell'immagine

Spero che questo funzioni.


18

Premere window + R (Run window Open)e in esecuzione tipo di finestra "services.msc"e nuovi servizi aperti trovare SQL SERVER con il nome dell'istanza nel mio caso, SQL SERVER(SQLEXPRESS)quindi avviare questo servizio e riprovare che funziona per me Spero che funzioni anche per te.inserisci qui la descrizione dell'immagine


La risposta è stata fornita in precedenza. Non avere alcun motivo pubblicarlo di nuovo
Anik Saha,

8
amico sto affrontando lo stesso problema ma non conosco la finestra dei servizi aperti a caldo quindi ho trovato un modo e ho pensato di condividere con le persone
Hafiz Asad

Grazie, @HafizAsad. La tua risposta funziona per me.
Adnan Ahmad,

@AdnanAhmad sei il benvenuto. Grazie per l'apprezzamento.
Hafiz Asad,

16

Nel caso in cui si stia utilizzando Express Edition :

Aggiungi "\SQLEXPRESS"dopo il nome del tuo server

per esempio "MY-SERVER\SQLEXPRESS"

inserisci qui la descrizione dell'immagine


13

Ho avuto lo stesso errore quando volevo eseguire il mio progetto WinForms (che include lavorare con un database SQL Server e che ha funzionato perfettamente sul mio PC) su un altro PC. Il problema era in Windows Firewall sul mio PC. Ho risolto questo aggiungendo due regole. Questa è l'intera procedura su come consentire SQL Server tramite Windows Firewall:

  1. Apri "Esegui" ed entra services.msc
  2. Trova il servizio per SQL Server (nome istanza) e SQL Server Browser. Uno alla volta, fare clic destro, selezionare "Proprietà", copiare il percorso nel file exe
  3. Quindi apri firewall.cpl, fai clic su consenti un'applicazione o aggiungi regola, aggiungi il percorso precedentemente copiato (c'è una procedura che devi seguire), seleziona Dominio e Privato, deseleziona Pubblico.

Questo è il link di YouTube in cui è possibile visualizzare questa procedura: Consenti SQL Server tramite Windows Firewall


Funziona perfettamente per me. Importante: aggiungi browser e server nel firewall! +1
BendEg

Stavo facendo fatica a localizzare il file sqlservr.exe, questo ha fatto il trucco nel trovarlo.
Stan,

11

Se nessuna delle soluzioni precedenti funziona (niente ha funzionato per me), riavvia il tuo computer e sarai in grado di collegarti al tuo server sql (localhost).


Il motivo per cui questo funzionerà, è perché hai appena installato Sql Server e non hai riavviato il computer come ti diceva l'installazione. Quindi, fallo e poi verranno creati i servizi e tutta la configurazione necessaria che manca.
Sterling Diaz,

10

Dopo aver fatto tutto quanto menzionato qui:
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a- connection-to-sql-server-microsoft-sql-server-error / Ancora non ha funzionato per me.

I passaggi hanno funzionato per me:

Start > Run > cmd > sqlcmd -L

Ti verrà richiesto il nome del server. Assicurarsi che questo nome server sia uguale a quello a cui si sta tentando di connettersi nella casella CONNECT TO SERVER di SQL Management Studio.

Ho fatto questo stupido errore che continuo a usare MSSQLSERVERpiuttosto usando questo nome server.

Spero che questo aiuti per le persone che commettono errori sciocchi come me.

Grazie.


7

Sto usando SQL Server 2016 e Windows 10.

inserisci qui la descrizione dell'immagine

La prima cosa è consentire la connessione remota a SQL Server. Quello che ho fatto è stato digitare sqlservermanager13.msc nel menu di avvio per aprire Gestione configurazione SQL Server. Assicurarsi che lo stato TCP / IP sia abilitato. inserisci qui la descrizione dell'immagine

Controllare il numero della porta TCP facendo doppio clic sul nome del protocollo TCP / IP. Di solito è 1433 per impostazione predefinita.

inserisci qui la descrizione dell'immagine

Le seguenti procedure configurano Windows Firewall utilizzando lo snap-in Microsoft Management Console (MMC) di Windows Firewall con sicurezza avanzata. Windows Firewall con sicurezza avanzata configura solo il profilo corrente.

Per aprire una porta nel firewall di Windows per l'accesso TCP

  1. Dal menu Start, scegliere Esegui, digitare WF.msc e quindi fare clic su OK.
  2. In Windows Firewall con sicurezza avanzata, nel riquadro sinistro, fare clic con il pulsante destro del mouse su Regole in entrata, quindi fare clic su Nuova regola nel riquadro azioni.
  3. Nella finestra di dialogo Tipo di regola, selezionare Porta, quindi fare clic su Avanti.
  4. Nella finestra di dialogo Protocollo e porte, selezionare TCP. Selezionare porte locali specifiche e quindi digitare il numero di porta dell'istanza del Motore di database, ad esempio 1433 per l'istanza predefinita. Fai clic su Avanti.
  5. Nella finestra di dialogo Azione, selezionare Consenti la connessione, quindi fare clic su Avanti.
  6. Nella finestra di dialogo Profilo, selezionare tutti i profili che descrivono l'ambiente di connessione del computer quando si desidera connettersi al Motore di database, quindi fare clic su Avanti.
  7. Nella finestra di dialogo Nome, digitare un nome e una descrizione per questa regola, quindi fare clic su Fine.

Un'altra cosa da configurare.

Per aprire l'accesso a SQL Server quando si utilizzano le porte dinamiche

  1. Dal menu Start, scegliere Esegui, digitare WF.msc e quindi fare clic su OK.
  2. In Windows Firewall con sicurezza avanzata, nel riquadro sinistro, fare clic con il pulsante destro del mouse su Regole in entrata, quindi fare clic su Nuova regola nel riquadro azioni.
  3. Nella finestra di dialogo Tipo di regola, selezionare Programma, quindi fare clic su Avanti.
  4. Nella finestra di dialogo Programma, selezionare Questo percorso del programma. Fare clic su Sfoglia e accedere all'istanza di SQL Server a cui si desidera accedere tramite il firewall, quindi fare clic su Apri. Per impostazione predefinita, SQL Server è in C: \ Programmi \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe. Fai clic su Avanti.
  5. Nella finestra di dialogo Azione, selezionare Consenti la connessione, quindi fare clic su Avanti.
  6. Nella finestra di dialogo Profilo, selezionare tutti i profili che descrivono l'ambiente di connessione del computer quando si desidera connettersi al Motore di database, quindi fare clic su Avanti.
  7. Nella finestra di dialogo Nome, digitare un nome e una descrizione per questa regola, quindi fare clic su Fine.

Dai un'occhiata alla doucmentation di Microsoft Configura un Windows Firewall per l'accesso al motore di database


Sul mio PC Windows 10 l'istanza del server sql è in C: \ Programmi \ Microsoft SQL Server \ MSSQL13.SQLEXPRESS \ MSSQL \ Binn \ Sqlservr.exe
Mayer Spitzer

7

È possibile testare i seguenti metodi.

  • un'

    1. Controllare la stringa di connessione del progetto.
  • B

    1. Vai ai servizi e riavvia l'istanza di SQL Server.
  • c

    1. Apri "Gestione configurazione SQLServer"
    2. Nel pannello di sinistra selezionare "Configurazione rete SQL Server" ed espanderlo
    3. Seleziona "Protocolli per MSSQLServer"
    4. Nel pannello di destra, fai clic su "TCP / IP"
    5. Nella scheda "Protocollo" impostare "Abilitato" su "Sì"
    6. Nella scheda "Indirizzi IP" scorrere verso il basso
    7. In "IPAll" impostare "Porta TCP" su 1433
  • d
    1. Apri "Firewall con sicurezza avanzata"
    2. Nella scheda a destra selezionare "Regole in entrata"

Nella scheda centrale trova il record che "Porta locale" è 1433, se non riesci a trovarlo prova a crearlo con i seguenti livelli

  • Nel menu Start, fai clic su Esegui, digita "WF.msc", quindi fai clic su OK
  • Nel pannello di sinistra fai clic su "Windows Firewall con sicurezza avanzata"
  • Nel pannello destro, fai clic con il pulsante destro del mouse su "Regole in entrata", quindi fai clic su "Nuova regola"
  • Nella finestra di dialogo Tipo di regola, selezionare "Porta", quindi fare clic su Avanti
  • Nella finestra di dialogo Protocollo e porte, selezionare "TCP" e selezionare "Porte locali specifiche", quindi digitare il numero di porta 1433, fare clic su Avanti
  • Nella finestra di dialogo Azione, selezionare Consenti la connessione, quindi fare clic su Avanti
  • Nella finestra di dialogo "Profilo", selezionando Dominio, Privato e Pubblico, quindi fare clic su Avanti
  • Nella finestra di dialogo "Nome", digitare "Porta SQL 1433" e per una descrizione scrivere la descrizione per proprio conto. Quindi fare clic su Fine
  1. Quindi nella scheda centrale fare doppio clic sull'elemento trovato (Istanza) o sull'elemento creato con il nome "Porta SQL 1433".
  2. Selezionare la scheda "Ambito" nella finestra di dialogo aperta (Proprietà di SQL Server)
  3. Nel PC locale Vai su google.com nel tuo browser e cerca "Il mio IP".
  4. quindi copia del tuo 'IP'
  5. Vai al server remoto e nella finestra di dialogo "Proprietà di SQL Server" della scheda "Ambito", in "Indirizzo IP remoto" seleziona l'opzione "Questi indirizzi IP" e fai clic sul pulsante "Aggiungi"
  6. Nella finestra di dialogo aperta (Indirizzo IP) selezionare l'opzione "Questo indirizzo IP o sottorete" e incollare "IP", fare clic sul pulsante OK.

7

Questa soluzione risolve sia i problemi network error che il serviceserver SQL dietro

Ho risposto a una domanda simile qui, è necessario stat l'altro open Run type-> services.msc- in servizi -> sort by stoppedvedrai un sacco di servizi SQL interrottiRight click and start

Per iniziare: ci sono 4 problemi che potrebbero causare gli errori comuni di connettività del server Sql LocalDb Sql SQL Network Interfaces, error: 50 - Local Database Runtime error occurred , prima di iniziare è necessario rinominare la v11 o la v12 in (localdb) \ mssqllocaldb


Troubleshooting Steps
  1. Non hai i servizi in esecuzione esegue questo cmd , net start MSSQLSERVERonet start MSSQL$ instancename
  2. Non hai le porte del firewall qui configurate inserisci qui la descrizione dell'immagine
  3. La tua installazione ha e ha problemi / danneggiati (i passaggi seguenti ti danno un buon inizio di pulizia)
  4. Non l'hai fatto rinominato V11 o 12 in mssqllocaldb / SqlServer

Ho scoperto che il più semplice è fare quanto segue: ho allegato le foto e i passaggi per chiedere aiuto.


Resolution Steps:

Per prima cosa verifica quale istanza hai installato, puoi farlo controllando il registro ed eseguendo cmd

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" se questo passaggio non riesce, è possibile eliminare con l'opzione dcmd> Sqllocaldb.exe d "someDb"
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png


5

Stavo riscontrando lo stesso problema e il problema era che ho ignorato diversi progetti nella soluzione ( Webe Droid) e anche se è Default projectstato scelto nel Package Manager Consoleusare la stringa di connessione dal Droidprogetto:

PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   [REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Dopo aver impostato Startup Projectto Webe Default Projectin, l' Package Manger Consoleho fatto funzionare.


5

Devo eseguire il servizio SQL Server Browser in Gestione configurazione SQL Server . L'installazione non può rilevare il servizio appena creato senza questo.


1
Non ci sono ancora, ma mi sto avvicinando. In Visual Studio dopo aver fatto ciò, disconnettiti e riconnetti, ottenendo lo stesso errore, ma ora almeno da dietro VS2015 non riesco a creare tabelle e database creo Seam per eseguire ora. (ea, nessuna icona della croce scura su di loro)
user3800527

1
nota dopo il tuo comando, questo ha portato al nome del server su un computer locale Start> Esegui> cmd> sqlcmd -L
user3800527

4

Mentre le soluzioni di cui sopra dovrebbero funzionare nel 90% dei casi, ma se stai ancora leggendo questa risposta !!! Probabilmente stai provando a connetterti a un server diverso da quello previsto. Potrebbe essere dovuto a un file di configurazione che punta a un server SQL diverso rispetto al server effettivo a cui pensi di voler connetterti.

Mi è successo almeno.


1
È successo anche a me. Avrei dovuto controllarlo prima di provare a diagnosticare il firewall. Avevo la stringa di connessione giusta, ma stavo eseguendo il progetto sbagliato nella soluzione ...
VSO

4

Mi sono trasferito da un laptop di lavoro su Windows 7 a un laptop di lavoro su Windows 10. Ho utilizzato con successo SSMS2016 su Windows 7.

Lo stesso problema si è verificato utilizzando SSMS2012 o SSMS2016. Il mio accesso ai server da 10 sql tramite l'autenticazione di Windows era sempre lo stesso. Potrei testarlo da un altro server. Tuttavia, 2 dei 10 server non si connettono dal mio laptop . Entrambi erano ms sql server 9 ma potevo collegarmi ad altri database sql server 9.

La soluzione era aggiungere una regola firewall (utilizzando Windows Firewall con sicurezza avanzata).

Creare una regola in entrata per ciascun SSMS, ad es. C: \ Programmi (x86) \ Microsoft SQL Server \ 130 \ Tools \ Binn \ ManagementStudio \ Ssms.exe

Non sono un esperto di rete, quindi non ho incluso i dettagli, ma spero che ti indichi nella giusta direzione.


Messaggio di errore (regola pre firewall) "Si è verificato un errore di rete o specifico dell'istanza durante la creazione di una connessione a SQL Server. Il server non è stato trovato o non era accessibile. Verificare che il nome dell'istanza sia corretto e che SQL Server sia configurato per consentire connessioni remote. (provider: SQL Network Interfaces, errore: 26 - Errore nella localizzazione del server / istanza specificata) (.Net SqlClient Data Provider) "


4

Perché questo errore è così noioso e rumoroso, solo perché può verificarsi in varie situazioni.

Ho fatto tutti gli approcci qui sopra, e sono ancora succhiato. Quindi assicurati di aver fatto lo stesso prima di navigare verso il basso.

Forse non sono in grado di risolvere la tua situazione all'istante, ma posso indicarti una direzione o pensare a te (Colui che finalmente scivola giù qui). Ho iniziato a meditare sull'errore del mio programma in esecuzione dopo che mi sono assicurato che il nome dell'istanza fosse chiaramente corretto e ho impostato il mio database per consentire il controllo remoto seguendo i metodi sopra. Successivamente, ho sospettato che accadesse qualcosa di sbagliato nel mio frammento di codice della connessione SQL.

Soluzione del mio problema:

  • Controlla la mia funzione sqlconnection

  • Clicca per vedere la sua configurazione

  • Nuova connessione

inserisci qui la descrizione dell'immagine

  • Seleziona il tuo nome server

inserisci qui la descrizione dell'immagine

Funziona per me riflettendo su cosa succede esattamente nel processo di connessione. Spero che il mio pensiero ti porti a uccidere il tuo errore.


Questo mi ha aiutato a scoprire che dovevo RIMUOVERE il numero di porta per una stringa di connessione LocalDB, quando si utilizza Entity Framework.
ryanwebjackson,

4

Ho provato tutte le altre risposte su questa domanda e alcune, se non tutte, probabilmente hanno avuto un ruolo nel farlo funzionare per me, ma non riuscivo ancora a collegarmi al DB da remoto. Stavo usando un SQL Server in una macchina virtuale di Azure.

Alla fine ho ricordato che la VM ha endpoint controllati dal proxy dell'account di Azure, quindi sono passato al portale di Azure e ho aggiunto 1433 come endpoint disponibile e ho potuto connettermi alla mia istanza SQL.

Spero che questo aiuti qualcuno che ha provato tutte le altre risposte e non ha ancora avuto fortuna!


4

Sommario

Per risolvere questo problema riscontrato durante l' esecuzione dell'app locale o del database remoto , utilizzare Gestione configurazione SQL Server per aggiungere un alias per il database remoto.

Dettagli

Mi ero imbattuto recentemente in questo problema durante la transizione da un computer portatile Windows 7 a un computer portatile Windows 10. Stavo gestendo un ambiente di sviluppo e runtime locale accedendo al nostro database Dev su un server remoto. Accediamo al database Dev tramite un'installazione alias del server tramite l'utilità di rete client di SQL Server (cliconfg.exe). Dopo aver confermato che l'alias è stato correttamente impostato nelle versioni a 64 e 32 bit dell'utilità e che il server di database era accessibile dal nuovo laptop tramite SSMS, ho ancora ricevuto l'errore visualizzato dall'OP (non l'indirizzo IP dell'OP, di corso).

È stato necessario utilizzare Gestione configurazione SQL Server per aggiungere un alias per il server di database Dev remoto. Risolto il problema.

inserisci qui la descrizione dell'immagine


4

È possibile controllare lo stato del servizio di MS SQL Server 2014. In Windows 7 è possibile farlo tramite:

  1. Vai alla ricerca e digita "Gestione configurazione SQL Server 2014
  2. Quindi fare clic su "Servizio SQL Server" nel menu a sinistra
  3. Controllare l'istanza dello stato del servizio SQL Server se è stata arrestata o in esecuzione
  4. Se è stato arrestato, modificare lo stato in esecuzione e accedere a SQL Server Management Studio 2014

3

Il mio problema è iniziato quando ho provato a cambiare il server da IIS Express a IIS locale (durante l'utilizzo di LocalDB ).

inserisci qui la descrizione dell'immagine

Stavo usando LocalDB (per scopi di sviluppo) e quando sono andato a tornare da IIS locale a IIS Express, Visual Studio ha cambiato la mia origine dati da Origine dati = (LocalDb) \ MSSQLLocalDB a Origine dati =. \ SQLEXPRESS

Stringa di connessione errata

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

Stringa di connessione corretta

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

Spero che questo aiuti qualcuno là fuori.


Inoltre, non fare lo stupido errore di usare / invece di \ nella stringa di connessione.
Andrew Pate,

3

Oltre a provare tutto come suggerito da Teo Chuen Wei Bryan, assicurati di fare anche riferimento al nome server / istanza corretto nella stringa di connessione.

Se si utilizza la forma abbreviata di nome host / istanza sul server di database o nel file web.config, assicurarsi di utilizzare il nome di dominio completo (FQDN) / istanza

Inoltre, per testare la connettività da un server in cui il client SQL Server NON è presente,

-> crea un file di testo e modifica la sua estensione in .udl

-> Fai clic destro sul file e puoi vedere la scheda di connessione.

-> Immettere il nome del server e le informazioni di accesso per testare la connessione al server del database.

Spero che sia di aiuto.


3

Se si verifica improvvisamente questo errore, dire in un ambiente di produzione e non è cambiato nulla, provare i seguenti 4 elementi nell'ordine seguente per vedere se viene corretto.

  1. riavviare il servizio SQL Server.
  2. riavviare il servizio (ad esempio IIS) che sta chiamando nel server sql. (il problema è probabilmente qui se l'intervallo tra l'inizio della chiamata di servizio al server SQL e l'ora in cui si ottiene l'errore di risposta è super breve (circa uno o due secondi).
  3. riavviare il server SQL Server è attivo.
  4. riavviare il server su cui è attivo il servizio di chiamata.

3

Quando ho riscontrato questo errore in Visual Studio,

"Si è verificato un errore relativo alla rete o specifico dell'istanza durante la creazione di una connessione a SQL Server. Il server non è stato trovato o non era accessibile. Verificare che il nome dell'istanza sia corretto e che SQL Server sia configurato per consentire connessioni remote. (provider: provider di tubi denominato, errore: 40 - Impossibile aprire una connessione a SQL Server) "

... è stato durante l'esecuzione del seguente codice C #, che stava tentando di ottenere i miei dati di SQL Server per visualizzarli in una griglia. L'interruzione si è verificata esattamente sulla riga che dice connect.Open ():

        using (var connect = Connections.mySqlConnection)
        {
            const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
            using (var command = new SqlCommand(query, connect))
            {
                connect.Open();
                using (var dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // blah
                    }
                }
            }
        }

Era inspiegabile perché la query SQL era molto semplice, avevo la stringa di connessione corretta e il server di database era disponibile. Ho deciso di eseguire manualmente l'effettiva query SQL in SQL Management Studio e ha funzionato bene e ha prodotto diversi record. Ma una cosa si è distinta nei risultati della query: c'era un testo HTML codificato in modo errato all'interno di un campo di tipo varchar (max) all'interno della tabella Friends (in particolare, alcuni simboli di commento codificati del tipo <!--alloggiati nei dati della colonna "Narrativa"). La riga di dati sospetti appariva così:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

Notare il simbolo HTML " &lt;" codificato , che indicava un carattere "<". In qualche modo si è fatto strada nel database e il mio codice C # non è riuscito a rilevarlo! Ha fallito ogni volta proprio sulla linea connect.Open ()! Dopo aver modificato manualmente quella riga di dati nella tabella del database Friends e aver inserito il carattere "<" decodificato, tutto ha funzionato! Ecco come dovrebbe apparire quella riga:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    <!--HTML Comment -->Once upon a time...

Ho modificato l'unica riga negativa che avevo usando questa semplice istruzione UPDATE di seguito. Ma se hai avuto diverse righe offensive di HTML codificato, potresti aver bisogno di un'istruzione UPDATE più elaborata che utilizza la funzione REPLACE:

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

Quindi, la morale della storia è (almeno nel mio caso), disinfettare il tuo contenuto HTML prima di archiviarlo nel database e non otterrai questo criptico errore di SQL Server in primo luogo! (Uh, la corretta sanificazione / decodifica del contenuto HTML è oggetto di un'altra discussione degna di una ricerca StackOverflow separata se hai bisogno di maggiori informazioni!)


3

Prova ad aggiungere un ,e un numero di porta (come in ,1433) alla fine della stringa di connessione.


3

La disposizione dei tag XML in Web.config è importante

Primo

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

Dopo

<connectionStrings>
  <add name="SqlConnectionString" connectionString="Data Source=.; Initial Catalog=TestDB; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>

3

Nella mia situazione il servizio MSSQLSERVER ha avuto un problema, quindi ho riavviato il servizio e il problema è stato risolto.

Quindi consiglio di andare all'app Servizi tramite: tasto Windows, cercare "Servizi" , quindi trovare l'istanza SQL di solito "SQL Server (MSSQLSERVER)" su per Microsoft SQL Server. Fare clic destro sul servizio e fare clic su Avvia, se disabilitato fare clic su Riavvia.


2

Questo errore si verifica quando lo è l'istanza del server sql stopped.

Vai a tutti i programmi> SQL Server> Strumenti di configurazione> SQL SERVER CONFIGURATION MANAGER

quindi fare clic su SQL sERVER SERVICES, verrà visualizzato un elenco di istanze, selezionare l'istanza in questione e fare clic sull'icona di riproduzione nella barra degli strumenti in alto, spero che ciò possa aiutare.

questa risposta è molto tardi (ma meglio tardi che mai;)


2

Ho risolto questo problema impostando il progetto che utilizza Entity Framework come progetto di avvio e quindi eseguivo il comando "update-database".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.