Waarom krijg ik “Kan geen verbinding maken met server – een netwerkgerelateerde of instantiespecifieke fout”?

Ik krijg de volgende foutmelding wanneer ik verbinding probeer te maken met SQL Server:

Kan geen verbinding maken met 108.163.224.173.

Een netwerkgerelateerde of
instantie-specifieke fout opgetreden bij het tot stand brengen van een verbinding met
SQL Server.

De server is niet gevonden of was niet toegankelijk. Verifiëren
dat de instantienaam correct is en dat SQL Server is geconfigureerd om:
externe verbindingen toestaan.

(provider: Named Pipes Provider, fout: 40 –
Kan geen verbinding maken met SQL Server) (Microsoft SQL Server,
Fout: 1326)

Deze fout treedt op wanneer ik mijn database probeer te configureren voor gridview in Visual Studio 2010. Ik weet niet hoe ik deze fout kan opsporen.

Hoe zou u deze fout oplossen? Welke stappen moet ik nemen om te bepalen wat hier echt aan de hand is, naast de stappen die in de foutmelding worden vermeld?


Antwoord 1, autoriteit 100%

Ik vond de volgende technieken nuttig:

  1. Zorg ervoor dat uw database-engine geconfigureerd is om externe verbindingen te accepteren:

    • Start > Alle programma’s > SQL Server 2005 > Configuratietools > Configuratie oppervlaktegebied van SQL Server
    • Klik op Surface Area Configuration for Services and Connections
    • Selecteer de instantie die een probleem heeft > Database-engine > Externe verbindingen
    • Lokale en externe verbindingen inschakelen
    • Herstart instantie
  2. Mogelijk moet u een uitzondering maken op de firewallvoor de SQL Server-instantie en poort die u gebruikt:

    • Start > Uitvoeren > Firewall.cpl
    • Klik op het tabblad uitzonderingen
    • Voeg sqlservr.exe toe (meestal in C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin, controleer uw installaties voor het daadwerkelijke mappad) en poort (standaard is 1433)
    • Controleer ook uw verbindingsreeks
  3. Controleer of uw SQL-serverservices goed werken:

    • Ga naar Alle programma’s > Microsoft SQL Server 2008 > Configuratietools > SQL Server-configuratiebeheer > SQL Server-services
    • Controleer of de servicestatus van SQL Server actief is.

    Zorg er daarnaast voor dat uw externe server zich in hetzelfde netwerkbevindt. Voer sqlcmd -Luit om te controleren of uw server is opgenomen in uw netwerklijst.

  4. TCP/IP inschakelenin SQL Server-configuratie

    Als twee of meer SQL-servers via het netwerk zijn verbonden, voeren ze alle communicatie uit via TCP/IP. De standaardpoort van SQL Server-installatie is 1433. Deze poort kan worden gewijzigd via SQL Server Configuration Manager. TCP/IP moet zijn ingeschakeld om verbinding te maken met SQL Server.

    • Ga naar Alle programma’s >> Microsoft SQL Server 2008 >> Configuratietools >> SQL Server-configuratiebeheer >> Selecteer TCP/IP
    • Klik met de rechtermuisknop op TCP/IP >> Klik op Inschakelen

    U moet SQL Server Services opnieuw starten om alle wijzigingen door te voeren. Klik met de rechtermuisknop en ga naar menu-eigenschappen om de locatie te selecteren waar de standaardpoort van SQL Server kan worden gewijzigd.


Antwoord 2, autoriteit 47%

Ik heb een oplossing voor mij:

Open “SQL Server Configuration Manager”

Klik nu op “SQL Server Network Configuration” en klik op “Protocols for Name

Klik met de rechtermuisknop op “TCP/IP” (zorg ervoor dat deze is ingeschakeld) Klik op Eigenschappen

Selecteer nu het tabblad “IP-adressen” -en- Ga naar het laatste item “IP All”

Voer “TCP-poort” 1433 in.

Nu Herstart“SQL Server .Name.” met behulp van “services.msc” (winKey + r)

Het zal werken…


Antwoord 3, autoriteit 41%

Mijn zwaar opgewaardeerde commentaarals antwoord met screenshots.

Ik heb hier veel tijd aan besteed, wat uiteindelijk voor mij werkte is:

1) Open Sql Server Configuration Manager–> SQL Server-netwerkconfiguratie–> Protocollen voor <(INSTANCE)>–> TCP/IP(dubbelklik erop).

2) Selecteer –> IP-adressen (tabblad).

3) Ga naar het laatste item IP Allen vermeld TCP Port 1433.

4) Druk op Win+Ren voer services.mscin.

5) Start nu SQL Server <(INSTANCE)>opnieuw.

Hierna is het probleem opgelost!


Antwoord 4, autoriteit 28%

Ik los dat probleem op door Serviceste openen en vervolgens de service Sql Server (Sqlexpress)uit te voeren.


Antwoord 5, autoriteit 8%

Deze fout kwam voornamelijk toen de SQL-service werd gestopt. U moet de service opnieuw starten. Om naar dit venster te gaan, moet u de services als volgt doorzoeken:

Zoek vervolgens naar SQLSERVER(MSSQLSERVER) en start de service opnieuw.

Hopelijk werkt dit.


Antwoord 6, autoriteit 6%

In het geval dat u de Express-editie gebruikt:

Voeg "\SQLEXPRESS"toe achter uw servernaam

bijv. "MY-SERVER\SQLEXPRESS"


7, Autoriteit 5%

Druk op window + R (Run window Open)en in Run Window Type "services.msc"en nieuwe services Open zoek SQL Server met instantienaam in mijn geval SQL SERVER(SQLEXPRESS)Start deze service en probeer het opnieuw, het werkt voor mij Hoop dat het ook voor u werkt.


8, Autoriteit 4%

Deze oplossing regelt beide problemen Network Error& AMP; serviceACHTER SQL SERVER

Ik heb hier een soortgelijke vraag beantwoord, je moet stat met de andere open Run type-> services.msc– onder Diensten – & GT; sort by stoppedU ziet een stel gestopte SQL-services Right click and start

Om te beginnen – er zijn 4 problemen die de Common LOCALDB SQLEXPRESS SQL Server Connectivity Fouten SQL Network Interfaces, error: 50 - Local Database Runtime error occurred, voordat u u wilt “NOVE ) \ MSSQLLOCALDB


Troubleshooting Steps
  1. Je hebt niet de Diensten Draaien Voer deze CMD uit , net start MSSQLSERVERof net start MSSQL$ instancename
  2. Je hebt niet de firewall poorten
    geconfigureerd
  3. Uw installatie heeft en uitgegeven / corrupt (de onderstaande stappen helpen u een mooie schone start te geven)
  4. die je niet hebt gedaan Hernoem de V11 of 12 NAAR MSSQLLOCALDB / SQLSERVER

Ik vond dat de eenvoudigste is om het onderstaande te doen – ik heb de foto’s en stappen voor hulp bijgevoegd.


Resolution Steps:

Controleer eerst welke instantie u hebt geïnstalleerd, u kunt dit doen door het register te controlerenendoor cmd uit te voeren

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"
    als deze stap mislukt, kunt u verwijderen met optie dcmd> Sqllocaldb.exe d “someDb”
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

Herstart MSSql Serverof herstart gewoon je machine!

  • Houd ingedrukt/druk om de CMD te openen, window + Ren typ “services.msc”

  • Zoek nu naar sql-serverservices, open zoek SQL SERVER met instantienaam
    dan ReStartdeze service en probeer het opnieuw


Antwoord 9, autoriteit 3%

Als geen van de bovenstaande oplossingen werkt (niets werkte voor mij), START dan gewoon uw computer OPNIEUW en u kunt verbinding maken met uw sql-server (localhost).


Antwoord 10, autoriteit 3%

Ik kwam hetzelfde probleem tegen
In mijn geval heb ik het probleem op deze manier opgelost

Stap 1: Vanuit het startmenu ging naar de configuratiemanager van SQL-server

Stap 2: TCP/IP ingeschakeld

Stap 3: Dubbelklik op TCP / IP en ging naar IP-adres Laatste invoer IP ALL en ingevoerd TCP-poort 1433 en vervolgens toegepast

Stap 4: Druk vervolgens op Win + R en schreef-services.msc opende de services en scrolt naar beneden en klik met de rechtermuisknop op SQL Server (MSSQLSERVER) Kies opnieuw opstarten

die mijn probleem opgelost is.
Zelfs als al de bovenstaande stappen het probleem niet oplossen, start dan gewoon de pc opnieuw op en hopelijk zal het werken.


11, Autoriteit 3%

Na het doen van alles hier genoemd:
http://blog.sqlauthority.com/2009/05/21/SQL-SERVER-FIX-Error-Provider-ned- PIPES-PROVIDER-FOUT-40-CHY-NOT-OPEN-A-verbinding-naar-SQL-SERVER-MICROSOFT-SQL-SERVER-FOUT /
Werkte nog steeds niet voor mij.

Stappen werkte voor mij:

Start > Run > cmd > sqlcmd -L

Het zal u de servernaam vragen. Zorg ervoor dat deze servernaam hetzelfde is als degene van wie u probeert verbinding te maken met in Connect to Server Box van SQL Management Studio.

Ik heb deze domme fout gemaakt die ik blijf met behulp van MSSQLSERVERVeeleer deze servernaam gebruiken.

Ik hoop dat dit helpt bij de mensen die een fout maken zoals ik.

bedankt.


12, Autoriteit 3%

U kunt de volgende methoden testen.

  • A

    1. Controleer de verbindingstekenreeks van het project.
  • B

    1. Ga naar Services en Start SQLServer-exemplaar.
  • C

    1. Open ‘SQLSERVER Configuration Manager’
    2. Selecteer in het linkerpaneel ‘SQLSERVER NETWERK-configuratie’ en uitbreiding
    3. Selecteer ‘Protocollen voor MSSQLSERVER’
    4. in het rechterpaneel DBL Klik op ‘TCP / IP’
    5. in het tabblad ‘Protocol’, stel de ‘ingeschakeld’ in op ‘Ja’
    6. in het tabblad ‘IP-adressen’, bladeren naar beneden
    7. in de ‘IPALL’ SET ‘TCP-poort’ tot 1433
  • d
    1. openen ‘firewall met geavanceerde beveiliging’
    2. Selecteer op het juiste tabblad ‘Inbound-regels’

Op het middelste tabblad zoekt u het record dat ‘Lokale poort’ 1433 is, als u het niet kunt vonden, probeer het met de volgende niveaus

  • Klik in het menu Start op Uitvoeren, typ ‘wf.msc’ en klik vervolgens op OK
  • Klik in het linkerpaneel op de ‘Windows Firewall met geavanceerde beveiliging’
  • In het rechterpaneel klik met de rechtermuisknop op ‘Inbound-regels’ en klik vervolgens op ‘Nieuwe regel’
  • Selecteer in het dialoogvenster Type regel ‘Poort’ en klik op Volgende
  • Selecteer ‘TCP’ in het dialoogvenster Protocol en Poorten, en selecteer ‘Specifieke lokale poorten’ en typ vervolgens het poortnummer 1433, klik op Volgende
  • Selecteer in het dialoogvenster Actie de verbinding en klik op Volgende
  • in het dialoogvenster ‘Profiel’, het domein, privé en publiek controleren, klik vervolgens op Volgende
  • In het dialoogvenster ‘NAAM’, typt u ‘SQL 1433-poort’ en voor een beschrijving Schrijfbeschrijving voor de eigen. Klik vervolgens op Voltooien
  1. Dubbele tabblad Dubbelklik op het gedeelte Gevonden item (exemplaar) of een item van de naam ‘SQL 1433-poort’ door u gemaakt.
  2. Selecteer ‘Scope’ -tabblad in geopende dialoogvenster (SQL Server-eigenschappen)
  3. Ga in de lokale pc naar Google.com in uw browser en zoek ‘My IP’.
  4. Kopieer vervolgens van uw ‘IP’
  5. Ga naar de externe server en in het dialoogvenster ‘SQL Server-eigenschappen’ van het tabblad ‘Scope’, selecteer in het ‘Remote IP-adres’ de optie ‘Deze IP-adressen’ en klik op ‘Toevoegen’ knop
  6. in het geopende dialoogvenster (IP-adres) Selecteer ‘Dit IP-adres of subnet’ optie en plak uw ‘IP’, klik op de knop OK.

13, Autoriteit 2%

Ik gebruik SQL Server 2016 en Window 10.

Het eerste is om afstandsbediening op SQL Server mogelijk te maken.
Wat ik deed is SQLSERVERMANAGER13.MSC bij Start-menu typen om de SQL Server Configuration Manager te openen. Zorg ervoor dat de TCP / IP-status is ingeschakeld.

Controleer uw TCP-poortnummer door dubbelklik op TCP / IP-protocolnaam. Meestal is het standaard 1433.

De volgende procedures configureren de Windows Firewall met behulp van de Windows Firewall met geavanceerde Security Microsoft Management Console (MMC) -module. De Windows-firewall met geavanceerde beveiliging configureert alleen het huidige profiel.

om een ​​poort in de Windows-firewall te openen voor TCP-toegang

  1. Klik in het menu Start op Uitvoeren, Typ WF.MSC en klik vervolgens op OK.
  2. In de Windows-firewall met geavanceerde beveiliging, in het linkerdeelvenster, klik met de rechtermuisknop op Inkomende regels en klik vervolgens op Nieuwe regel in het actievenster.
  3. Selecteer Poort in het dialoogvenster Type regel en klik op Volgende.
  4. Selecteer TCP in het dialoogvenster Protocol en het dialoogvenster Poorten. Selecteer specifieke lokale poorten en typ vervolgens het poortnummer van het exemplaar van de
    Database-motor, zoals 1433 voor de standaardinstantie. Klik op Volgende.
  5. Selecteer in het dialoogvenster Actie de verbinding en klik op Volgende.
  6. Selecteer in het dialoogvenster Profiel alle profielen die de computerverbindingsomgeving beschrijven wanneer u verbinding wilt maken met de
    Database-engine en klik vervolgens op Volgende.
  7. Typ in het dialoogvenster Naam een ​​naam en beschrijving voor deze regel en klik vervolgens op Voltooien.

een ander ding om te configureren.

om de toegang tot SQL Server te openen bij het gebruik van dynamische poorten

  1. Klik in het menu Start op Uitvoeren, Typ WF.MSC en klik vervolgens op OK.
  2. in de Windows-firewall met geavanceerde beveiliging, in het linkerdeelvenster,
    Klik met de rechtermuisknop op Inbound-regels en klik vervolgens op Nieuwe regel in de actie
    paneel.
  3. Selecteer Programma en klik vervolgens op Volgende.
  4. Selecteer in het dialoogvenster Programma dit programma PAD. Klik op Bladeren,
    en navigeer naar het exemplaar van SQL Server die u wilt openen
    door de firewall en klik vervolgens op Openen. Standaard is SQL Server
    Bij C: \ Program Files \ Microsoft SQL
    Server \ MSSQL13.MSSQLSERVER \ MSSQL \ BINN \ SQLSERVR.EXE. Klik op Volgende.
  5. Selecteer in het dialoogvenster Actie de verbinding en vervolgens toe
    klik op Volgende.
  6. Selecteer in het dialoogvenster Profiel alle profielen die de
    Computerverbindingomgeving wanneer u verbinding wilt maken met de
    Database-engine en klik vervolgens op Volgende.
  7. Typ in het dialoogvenster Naam een naam en beschrijving voor deze regel,
    en klik vervolgens op Voltooien.

Bekijk Microsoft-documentatie
Een Windows Firewall configureren voor toegang tot de database-engine


Antwoord 14, autoriteit 2%

Ik had hetzelfde probleem en het probleem was dat ik verschillende projecten in de oplossing had (Weben Droid) en hoewel Default projectwerd gekozen in de Package Manager Consolehet gebruikte de verbindingsreeks van het Droid-project:

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)

Na het instellen van het Startup Projectop Weben het Default projectin Package Manager Consolekreeg ik het werk.


Antwoord 15, autoriteit 2%

Ik moet de service SQL Server Browseruitvoeren in SQL Server Configuration Manager.
Installatie kan de nieuw gemaakte service niet ontdekken zonder deze.


Antwoord 16, autoriteit 2%

U kunt de servicestatus van MS SQL Server 2014 controleren. In Windows 7 kunt u dat doen door:

  1. Ga naar zoeken en typ “SQL Server 2014 Configuration Manager
  2. Klik vervolgens op “SQL Server Service” in het linkermenu
  3. Controleer de status van de SQL Server-service als deze is gestopt of actief is
  4. Als het is gestopt, verander dan de status naar actief en log in op SQL Server Management Studio 2014

Antwoord 17

Hoewel de bovenstaande oplossingen in 90% van de gevallen zouden moeten werken, maar als u dit antwoord nog steeds leest!!! U probeert waarschijnlijk verbinding te maken met een andere server dan bedoeld. Het kan zijn dat een configuratiebestand verwijst naar een andere SQL-server dan de eigenlijke server waarmee u denkt verbinding te maken.

Is mij tenminste overkomen.


Antwoord 18

Ik ben overgestapt van een werklaptop op Windows 7 naar een werklaptop op Windows 10.
Ik had SSMS2016 met succes gebruikt op Windows 7.

Hetzelfde probleem gold voor SSMS2012 of SSMS2016.
Mijn toegang tot de 10 sql-servers met behulp van Windows-authenticatie was nog steeds hetzelfde. Ik zou dit van een andere server kunnen testen.
2 van de 10 servers wilden echter geen verbinding maken vanaf mijn laptop.
Beiden waren ms sql server 9, maar ik kon verbinding maken met andere sql server 9 databases.

De oplossing was om een firewallregel toe te voegen(met Windows Firewall met geavanceerde beveiliging).

Maak een inkomende regel voor elke SSMS
bijv. C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Ssms.exe

Ik ben geen netwerkexpert, dus ik heb de details niet toegevoegd, maar hopelijk zal het je in de goede richting wijzen.


Foutbericht (pre-firewallregel)
“Er is een netwerkgerelateerde of instantiespecifieke fout opgetreden tijdens het tot stand brengen van een verbinding met SQL Server. De server is niet gevonden of was niet toegankelijk. Controleer of de instantienaam juist is en of SQL Server is geconfigureerd om externe verbindingen toe te staan. (provider: SQL-netwerkinterfaces, fout: 26 – Fout bij het lokaliseren van server/instantie opgegeven) (.Net SqlClient-gegevensprovider)”


Antwoord 19

Waarom deze fout zo vervelend en lawaaierig is, alleen maar omdat hij in verschillende situaties kan voorkomen.

Ik heb alle stappen hierboven hier gedaan en word nog steeds gezogen. Dus zorg ervoor dat je hetzelfde hebt gedaan als ik voordat je naar beneden bladert.

Misschien ben ik niet in staat om uw situatie onmiddellijk op te lossen, maar ik kan u een richting of gedachte aanwijzen(Degene die hier uiteindelijk naar beneden glijdt). Ik begon na te denken over de fout van mijn actieve programma nadat ik ervoor had gezorgd dat de instantienaam duidelijk juist was en mijn database had ingesteld om afstandsbediening toe te staan volgens de bovenstaande methoden. Daarna Ik vermoedde dat er iets mis was in mijn codefragment van de SQL-verbinding.

Oplossing van mijn probleem:

  • Controleer mijn sqlconnection-functie

  • Klik om de configuratie te zien

  • Nieuwe verbinding

  • Selecteer uw servernaam

Het werkt voor mij als ik nadenk over wat er precies gebeurt in het proces van verbinding. Ik hoop dat mijn denken ertoe zal leiden dat je je fout doodt.


Antwoord 20

Ik heb alle andere antwoorden op deze vraag geprobeerd en sommige, zo niet alle, hebben waarschijnlijk een rol gespeeld om dit voor mij werkend te krijgen, maar ik kon nog steeds geen verbinding maken met de DB op afstand. Ik gebruikte een SQL Server op een Azure VM.

Ik herinnerde me uiteindelijk dat de VM eindpunten heeft die worden beheerd door de Azure-accountproxy, dus ging ik naar de Azure Portal en voegde 1433 toe als een beschikbaar eindpunt en ik kon verbinding maken met mijn SQL-instantie.

Ik hoop dat dit iemand helpt die alle andere antwoorden heeft geprobeerd en nog steeds geen geluk heeft!


Antwoord 21

Samenvatting

Gebruik SQL Server Configuration Manager om een alias voor de externe database toe te voegen om dit probleem op te lossen dat zich voordoet tijdens het uitvoeren van een lokale app versus externe database.

Details

Ik was onlangs tegen dit probleem aangelopen toen ik overstapte van een Windows 7- naar een Windows 10-laptop. Ik had een lokale ontwikkel- en runtime-omgeving die toegang had tot onze Dev-database op een externe server. We hebben toegang tot de Dev-database via een serveralias-configuratie via SQL Server Client Network Utility (cliconfg.exe). Nadat ik had bevestigd dat de alias correct was ingesteld in zowel de 64- als de 32-bits versie van het hulpprogramma en dat de databaseserver toegankelijk was vanaf de nieuwe laptop via SSMS, kreeg ik nog steeds de fout die werd gezien door de OP (niet het IP-adres van de OP, van natuurlijk).

Het was nodig om SQL Server Configuration Manager te gebruiken om een alias toe te voegen voor de externe Dev-databaseserver. Dingen rechtgezet.


Antwoord 22

Mijn probleem begon toen ik probeerde de server te wijzigen van IIS Expressnaar Lokale IIS(terwijl ik LocalDBgebruikte).

Ik gebruikte LocalDB (voor ontwikkelingsdoeleinden) en toen ik terugging van Local IIS naar IIS Express, had Visual Studio mijn gegevensbron veranderd van Data Source=(LocalDb)\MSSQLLocalDBnaar Gegevensbron=.\SQLEXPRESS

Onjuiste verbindingsreeks

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

Correcte verbindingsreeks

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

Ik hoop dat dit iemand helpt.


Antwoord 23

Als je deze fout plotseling tegenkomt, bijvoorbeeld in een productieomgeving en er is niets veranderd, probeer dan de volgende 4 items in de onderstaande volgorde om te zien of het wordt opgelost.

  1. start de sql-serverservice opnieuw.
  2. start de service opnieuw (zeg IIS) die de sql-server aanroept. (het probleem is waarschijnlijk hier als de tijd tussen het begin van de serviceaanroep naar de SQL-server en de tijd dat u de responsfout krijgt, superkort is (ongeveer één of twee seconden).
  3. start de server sql-server opnieuw.
  4. start de server waarop de bellende service staat opnieuw.

Antwoord 24

Toen ik deze fout ondervond in Visual Studio,

“Er is een netwerkgerelateerde of instruminspecifieke fout opgetreden bij het vaststellen van een verbinding met SQL Server. De server is niet gevonden of was niet toegankelijk. Controleer of de instantienaam correct is en dat SQL Server is geconfigureerd om externe verbindingen mogelijk te maken. (Provider: genoemde pipes provider, fout: 40 – kon geen verbinding met SQL Server openen) “

… het was tijdens de uitvoering van de volgende C # -code, die probeerde mijn SQL Server-gegevens te verkrijgen om deze in een raster weer te geven. De pauze is precies opgetreden op de regel die Connect.open ():

zegt

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

Het was onverklaarbaar omdat de SQL-query heel eenvoudig was, ik had de rechter verbindingsstring en de databaseserver was beschikbaar. Ik besloot om de werkelijke SQL-query handmatig te runnen in SQL Management Studio en het liep prima en leverde verschillende records op. Maar één ding stond op in de query-resultaten: er was enkele onjuist gecodeerde HTML-tekst in een veld VARCHAR (MAX) in de Vriendentabel (met name, sommige gecodeerde commentaarsymbolen van de SORT <!--ingediend binnen de gegevens van de “narratieve” kolom). De verdachte datarow leek zo:

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

Let op het gecodeerde HTML-symbool “&lt;“, die voor een “& LT;” stond karakter. Op de een of andere manier maakte dat zijn weg naar de database en mijn C # -code kon het niet ophalen! Het mislukte elke keer bij de lijn Connect.Open ()! Nadat ik die ene rij gegevens in de database-tafelvrienden had bewerkt en in de gedecodeerde “& lt; karakter in plaats daarvan werkte alles! Dit is wat die rij eruit zou hebben gezien:

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

Ik heb de enige slechte rij bewerkt die ik had door deze eenvoudige update-uitspraak hieronder te gebruiken. Maar als u verschillende beledigende rijen van gecodeerde HTML had, heeft u mogelijk een meer uitgebreide update-instructie nodig die de vervangingsfunctie gebruikt:

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

Dus, de moraal van het verhaal is (tenminste in mijn geval), ontsmet je HTML-inhoud voordat je het in de database opbergt en krijg je deze cryptische SQL Server-fout in de eerste plaats niet! (Uh, goed saniterend / het decoderen van uw HTML-inhoud is het onderwerp van een andere discussie waardig van een afzonderlijke StackoverFlow-zoekopdracht als u meer informatie nodig hebt!)


25

Probeer een ,en een poortnummer (zoals in ,1433) aan het einde van uw verbindingsstring toe te voegen.


26

XML-tagarrangement in Web.Config is belangrijk

eerst

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

Na

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

Antwoord 27

In mijn situatie had de MSSQLSERVER-service een probleem, dus ik heb de service opnieuw opgestart en het probleem is opgelost.

Dus ik raad aan om naar de Services-app te gaan door: Windows-toets, zoek “Services”en zoek vervolgens uw SQL-instantie meestal “SQL Server (MSSQLSERVER)”op voor Microsoft sql-server.
Klik met de rechtermuisknop op service en klik op Start, indien uitgeschakeld, klik op Opnieuw opstarten.


Antwoord 28

Herstart de SQL Server (MSSQLSERVER)-service.

Other episodes