risposta-alla-domanda-sullo-sviluppo-web-bd.com

Perché sto ricevendo "Impossibile connettersi al server - Un errore relativo alla rete o specifico Dell'istanza"?

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 mentre si stabiliva 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 le 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 su 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 dovrei prendere per determinare cosa sta realmente accadendo qui, oltre a quello menzionato nel messaggio di errore?

319
Sasa Shree

Ho trovato utili le seguenti tecniche:

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

    • Start> Tutti i programmi> SQL Server 2005> Strumenti di configurazione> Configurazione area superficie SQL Server
    • Fare clic su Configurazione area superficie per servizi e connessioni
    • Selezionare 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 stai utilizzando:

    • Start> Esegui> Firewall.cpl
    • Fare clic sulla scheda eccezioni
    • Aggiungi sqlservr.exe (in genere situato in C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin, controlla le tue installazioni per il percorso effettivo della cartella) e port (il default è 1433)
    • Controlla anche la stringa di connessione
  3. Controlla se i tuoi servizi del server SQL sono 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, assicurati che il tuo server remoto si trovi nella stessa rete . Esegui sqlcmd -L per verificare se il tuo server è incluso nel tuo elenco di reti.

  4. Abilita TCP/IP nella configurazione di SQL Server

    Quando due o più server SQL sono connessi attraverso la rete, eseguono 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 destro su TCP/IP >> Fare clic su Abilita

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

272

Ho una soluzione per me:

Aprire "Gestione configurazione server SQL"

Ora fai clic su "Configurazione della 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 "IP Tutto"

Inserire "Porta TCP" 1433.

Now Restart "SQL Server .Name." utilizzando "services.msc" (winKey + r)

Funzionerà...

106
Irshad Khan

Aggiungendo il mio molto upvoted comment ​​ come una risposta con screenshot.

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

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

enter image description here

2) Selezionare -> Indirizzi IP (scheda).

3) Vai all'ultima voce IP All e menziona TCP Port 14.

enter image description here

4) Premere Win+R e immettere services.msc.

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

enter image description here

Dopo questo, il problema è stato risolto!

80
user1336087

Sto risolvendo il problema aprendo Servizi e poi avviando il servizio Sql Server (Sqlexpress) .

service Image

77
Anik Saha

Questo errore si verificava principalmente quando il servizio SQL è stato interrotto. Devi riavviare il servizio. Per andare in questa finestra devi cercare i Servizi in questo modo- enter image description here

Quindi cercare SQLSERVER (MSSQLSERVER) e riavviare il servizio.

enter image description here

Spero che questo funzionerà.

17
Debendra Dash

Premi window + R (Run window Open) e nella finestra di esecuzione scrivi "services.msc" e nuovi servizi apri find SQL SERVER(SQLEXPRESS) avvia il servizio e riprova funziona per me Spero che funzioni anche per te. enter image description here

13
Hafiz Asad

Nel caso tu stia utilizzando l'Express Edition :

Aggiungi "\SQLEXPRESS" dopo il nome del tuo server

per esempio. "MY-SERVER\SQLEXPRESS"

enter image description here

13
Abdulrahman Bres

Se nessuna delle soluzioni di cui sopra funziona (niente ha funzionato per me), basta RIAVVIARE il tuo computer e sarai in grado di collegarti al tuo server SQL (localhost).

10
eugen sunic

Ho avuto lo stesso errore quando volevo eseguire il mio progetto WinForms (che include il lavoro con un database di SQL Server e che funzionava 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" e inserisci services.msc
  2. Trova il servizio per SQL Server (nome istanza) e SQL Server Browser. Uno alla volta, fare clic con il tasto destro, selezionare "Proprietà", copiare il percorso del file exe
  3. Quindi apri firewall.cpl, fai clic su consenti a un'applicazione o aggiungi regola, aggiungi il percorso precedentemente copiato (c'è una procedura che devi seguire), controlla Dominio e Privato, deseleziona Pubblico.

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

10
NutCracker

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.

Passi ha funzionato per me:

Start > Run > cmd > sqlcmd -L

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

Ho fatto questo errore stupido Continuo a usare MSSQLSERVER piuttosto usando questo nome del server.

Spero che questo aiuti le persone che fanno uno stupido errore come me.

Grazie.

8
Denn

Sto usando SQL Server 2016 e Windows 10.

enter image description here

La prima cosa è consentire la connessione remota a SQL Server. Quello che ho fatto è di digitare sqlservermanager13.msc nel menu di avvio per aprire Gestione configurazione SQL Server. Assicurarsi che lo stato TCP/IP sia abilitato. enter image description here

Controlla il tuo numero di porta TCP facendo doppio clic sul nome del protocollo TCP/IP. Di solito è 1433 di default.

enter image description here

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 TCP access

  1. Nel menu Start, fare clic su Esegui, digitare WF.msc e quindi fare clic su OK.
  2. In Windows Firewall con sicurezza avanzata, nel riquadro di sinistra, 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, quindi digitare il numero di porta dell'istanza di Motore di database, ad esempio 1433 per l'istanza predefinita. Fare 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 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. Nel menu Start, fare clic su Esegui, digitare WF.msc e quindi fare clic su OK.
  2. In Windows Firewall con sicurezza avanzata, nel riquadro di sinistra, 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 di 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. Fare 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 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 a Microsoft doucmentation Configura un Windows Firewall per l'accesso al motore di database

5
Fred

È possibile testare i seguenti metodi.

  • un

    1. Controlla la stringa di connessione del progetto.
  • b

    1. Vai ai servizi e riavvia l'istanza SQLServer.
  • c

    1. Aprire 'SQLServer Configuration Manager'
    2. Nel pannello di sinistra selezionare 'SQLServer Network Configuration' ed espanderlo
    3. Seleziona "Protocolli per MSSQLServer"
    4. Nel pannello di destra dbl fai clic su "TCP/IP"
    5. Nella scheda "Protocollo" impostare "Abilitato" su "Sì"
    6. Nella scheda "Indirizzi IP" scorri verso il basso
    7. Nella "IPAll" impostare "Porta TCP" su 1433
  • d
    1. Apri "Firewall con sicurezza avanzata"
    2. Nella scheda destra seleziona "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, fare clic su Esegui, digitare "WF.msc", quindi fare clic su OK
  • Nel pannello di sinistra fai clic su "Windows Firewall with Advanced Security"
  • Nel riquadro 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', controllando il dominio, privato e pubblico, quindi fare clic su Avanti
  • Nella finestra di dialogo 'Nome', digitare 'SQL 1433 Port' e per una descrizione scrivere descrizione per proprio. Quindi fare clic su Fine
  1. Quindi nella scheda centrale fare doppio clic sull'elemento trovato (Istanza) o sull'elemento creato con il nome 'SQL 1433 Port'.
  2. Seleziona la scheda "Ambito" nella finestra di dialogo aperta (Proprietà SQL Server)
  3. Nel PC locale Vai a 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à 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 subnet' e incollare il 'IP', fare clic sul pulsante OK.
4
MohammadSoori

Stavo vivendo lo stesso problema e il problema era che ho molti progetti nella soluzione (Weband Droid) e anche se Default project è stato scelto nel Package Manager Console ha usato la stringa di connessione dal progetto Droid:

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 Project in Web e Default Project in Package Manger Console, ho funzionato.

4
Jefecito

Ho provato tutte le altre risposte su questa domanda e alcune, se non tutte, hanno probabilmente contribuito a far funzionare questo lavoro per me, ma non sono riuscito a connettermi al DB da remoto. Stavo usando un server SQL su una macchina virtuale di Azure.

Alla fine mi sono ricordato che 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 continua a non avere fortuna!

3
John

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

  1. Vai a cercare e digita "SQL Server 2014 Configuration Manager
  2. Quindi fare clic su "Servizio SQL Server" nel menu a sinistra
  3. Controllare l'istanza dello stato del servizio SQL Server se è stato arrestato o in esecuzione
  4. Se è stato arrestato, cambiare lo stato in esecuzione e accedere a SQL Server Management Studio 2014
3
Chamara

Devo eseguire SQL Server Browser servizio in SQL Server Configuration Manager . L'installazione non può scoprire il servizio appena creato senza questo.

3
MarkosyanArtur

Sintesi

Per risolvere questo problema riscontrato mentre eseguiva l'app locale rispetto al database remoto , utilizzare Gestione configurazione SQL Server per aggiungere un alias per il database remoto.

Dettagli

Mi sono imbattuto recentemente in questo problema durante la transizione da Windows 7 a un laptop Windows 10. Stavo eseguendo uno sviluppo locale e un ambiente di runtime che accedeva al nostro database Dev su un server remoto. Accediamo al database Dev tramite un'impostazione dell'alias del server tramite l'utilità di rete client di SQL Server (cliconfg.exe). Dopo aver verificato che l'alias era configurato correttamente in entrambe le versioni a 64 e 32 bit dell'utility e che il server di database era accessibile dal nuovo laptop tramite SSMS, ho ancora ricevuto l'errore visto dall'OP (non dall'indirizzo IP dell'OP, di corso).

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

enter image description here

3
Bill Needels

Questa soluzione risolve sia l'errore di rete sia il servizio dietro SQL Server

Ho risposto a una domanda simile qui, è necessario impostare l'altro open Run type-> services.msc - sotto services -> sort by stoppedvedrai un gruppo di servizi SQL fermati Right click and start

Per iniziare - ci sono 4 problemi che potrebbero causare errori di connettività common LocalDb SqlExpress Sql ServerSQL Network Interfaces, error: 50 - Local Database Runtime error occurred, prima di iniziare siè necessario rinominare la v11 o v12 a (localdb)\mssqllocaldb

Ho scoperto che il più semplice è fare il seguente: ho allegato le foto e i passaggi per l'aiuto.

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

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" se questo passaggio fallisce, puoi cancellare con l'opzione d cmd> Sqllocaldb.exe d "someDb"
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png

3
transformer

Mentre le soluzioni di cui sopra dovrebbero funzionare nel 90% dei casi, ma se stai ancora leggendo questa risposta !!! Probabilmente stai tentando di connetterti a un server diverso dal previsto. Potrebbe essere dovuto a un file di configurazione che punta a un server SQL diverso dal server effettivo che si ritiene si stia tentando di connettersi.

Mi è successo almeno.

3
Arjmand

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

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

Forse non sono in grado di correggere istantaneamente la tua situazione, ma posso indicare una direzione o pensare a te (Quello che finalmente scorre qui sotto). Ho iniziato a meditare sull'errore del mio programma in esecuzione che si verificava dopo essermi assicurato che il nome dell'istanza fosse chiaramente corretto e impostare il mio database per consentire il controllo remoto seguendo i metodi precedenti. Dopo di allora, sospettavo che qualcosa di sbagliato accadesse 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

enter image description here

  • Seleziona il tuo nome del server

enter image description here

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

3
Chase07

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 usando l'autenticazione di Windows era sempre lo stesso. Potrei provare questo da un altro server. Tuttavia, 2 dei 10 server non si connetterebbero dal mio laptop . Entrambi erano ms sql server 9 ma potevo connettermi ad altri database SQL Server 9.

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

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

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


Errore msg (pre firewall rule) "Si è verificato un errore relativo alla rete o specifico dell'istanza mentre si stabiliva 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: Interfacce di rete SQL, errore: 26 - Individuazione errore server/istanza specificata) (.Net SqlClient Data Provider) "

2
johnc

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

Se si utilizza la forma abbreviata di Nome host/Istanza sul server database o nel file web.config, assicurarsi di utilizzare nome 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 cambia l'estensione del file in . udl

-> Fare clic con il pulsante destro del mouse sul file e visualizzare la scheda di connessione.

-> Immettere il nome del server e accedere alle informazioni per verificare la connessione al server del database.

Spero che questo ti aiuti.

2
SanthoshM

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

2
Kalyan Hurkat

Quando ho riscontrato questo errore in Visual Studio,

"Si è verificato un errore relativo alla rete o specifico dell'istanza mentre si stabiliva 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 le connessioni remote. (provider: Named Pipes Provider, 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 visualizzarlo 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 inesplicabile perché la query SQL era molto semplice, avevo la stringa di connessione giusta e il server di database era disponibile. Ho deciso di eseguire manualmente la query SQL direttamente da solo in SQL Management Studio e ha funzionato correttamente e ha prodotto diversi record. Ma una cosa spiccava nei risultati dell'interrogazione: c'era un testo HTML codificato in modo improprio all'interno di un campo di tipo varchar (max) all'interno della tabella Friends (in particolare, alcuni simboli di commento codificati del tipo <!-- inserito nei dati della colonna "Narrativa"). La riga dei dati sospetti assomigliava a questo:

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

Si noti il ​​simbolo HTML codificato "&lt;", che rappresentava un carattere "<". In qualche modo si è fatto strada nel database e il mio codice C # non è riuscito a raccoglierlo! Ha fallito ogni volta proprio sulla linea connect.Open ()! Dopo aver modificato manualmente quella riga di dati nella tabella del database Amici e inserito il carattere "<" decodificato, tutto ha funzionato! Ecco come avrebbe dovuto essere quella fila:

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

Ho modificato l'unica riga errata che avevo usando questa semplice istruzione UPDATE di seguito. Ma se avessi diverse righe offensive di codice HTML codificato, potresti aver bisogno di un'istruzione UPDATE più elaborata che usi 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 contenuto HTML prima di memorizzarlo nel database e non si otterrà questo errore di SQL Server criptico in primo luogo! (Uh, sanificare/decodificare correttamente il contenuto HTML è l'argomento di un'altra discussione degna di una ricerca StackOverflow separata se hai bisogno di maggiori informazioni!)

2

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>
2
user7339584

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

enter image description here

Stavo usando LocalDB (per scopi di sviluppo), e quando sono andato a ripristinare da Local IIS a IIS Express, Visual Studio aveva 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" />

Corretta stringa di connessione

<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.

2
megamaiku

Se incontri improvvisamente questo errore, dì in un ambiente di produzione e nulla è cambiato, prova 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 in SQL Server. (probabilmente il problema è qui se il tempo tra l'inizio della chiamata di servizio a SQL server e il tempo in cui si finisce per ottenere l'errore di risposta è molto breve (circa uno o due secondi).
  3. riavviare il server SQL server è acceso.
  4. riavviare il server è attivo il servizio di chiamata.
2
Barka

Il mio problema era che è necessario avere una voce di stringa di connessione in entrambi il livello del repository e il livello web. Una volta che l'ho aggiunto al mio web.config e al mio app.config, Entity Framework è stato in grado di creare la migrazione.

La mia domanda è perché, web.config ne ha bisogno, quando non c'è assolutamente nessun accesso al database lì.

1
Thing

Sembra che la tua istanza di localdb non sia in esecuzione. Per avviarlo all'avvio del computer, aggiungere nel menu Start\Cartella di avvio file BAT con la seguente riga

sqllocaldb start name_of_instance

dove name_of_instance è il nome dell'istanza di localdb, che si desidera avviare. È possibile elencare le istanze disponibili nella riga di comando utilizzando sqllocaldb i.

per esempio. Se utilizzi SQL Server Management Studio e ti connetti a Nome server (localdb)\v11.0, il tuo file BAT sarà simile

sqllocaldb start v11.0
1
Ondrej

Questo errore si verifica quando 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, apparirà l'elenco delle istanze, selezionare l'istanza in questione e fare clic sull'icona di riproduzione nella barra degli strumenti in alto, sperare che ciò possa essere d'aiuto.

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

1
Alex

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

1
user1796440

Se lo stai riscontrando mentre esegui il debug in Visual Studio, assicurati che il percorso di generazione del progetto punti a un'unità locale o segui questi passaggi per concedere le autorizzazioni alla cartella di rete.

1
Kevin D.

Potrebbe anche essere semplice come il fatto che il tuo database non sia effettivamente MS SQL Server. Se il tuo database è in realtà MySql, ad esempio, e provi a connetterti con System.Data.SqlClient, otterrai questo errore.

Di gran lunga la maggior parte degli esempi di ADO.Net sarà per MSSQL e l'utente inesperto potrebbe non sapere che non è possibile utilizzare SqlConnection, SqlCommand, ecc. Con MySql.

Mentre tutti i fornitori di dati ADO.Net sono conformi alla stessa interfaccia, è necessario utilizzare il provider creato per il proprio database.

0
Crowcoder