2016-04-05 11 views
2

Ich versuche, eine neue asp.net Core App zu erstellen, die EF7 verwendet, um auf eine lokale Datenbank zuzugreifen, und ich habe einige Probleme mit der Verbindungszeichenfolge. Ich habe die lokalen db-Dienst installiert und ich habe bereits mehrere Instanzen erstellt:EF7: Fehler bei der Verbindung zu einer lokalen Datenbank

PS C:\Users\luisabreu> sqllocaldb info 
MSSQLLocalDB 
ProjectsV12 
ProjectsV13 
v11.0 

MSSQLLocalDB läuft v12:

PS C:\Users\luisabreu> sqllocaldb info mssqllocaldb 
Name:    MSSQLLocalDB 
Version:   12.0.2000.8 
Shared name: 
Owner:    GRM\luisabreu 
Auto-create:  Yes 
State:    Running 
Last start time: 05/04/2016 08:46:17 
Instance pipe name: np:\\.\pipe\LOCALDB#518FD662\tsql\query 

Dies wird die Verbindungszeichenfolge Ich bin vorbei an EF:

{ 
    "usersCnnString": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=UsersInfo;Integrated Security=True" 
} 

Btw, ich habe bereits versucht, diese auch:

"usersCnnString": "Server=(localdb)\\mssqllocaldb;Database=UsersInfo;Trusted_Connection=True" 

Und hier ist der Setup-Code, den ich für den Aufbau ED Abhängigkeiten bin mit:

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: 50 - Local Database Runtime error occurred. Specified LocalDB instance name is invalid.) 

Ich:

services.AddEntityFramework() 
      .AddSqlServer() 
      .AddDbContext<UsersContext>(options => options.UseSqlServer(Configuration["usersCnnString"])); 

Jedes Mal, wenn ich versuche, auf die Datenbank zuzugreifen, ich mit dem folgenden Fehler am Ende Ich mache sicherlich etwas falsch, aber was?

danke! Luis

+0

Ist 'Konfiguration [" usersCnnString "]' das Richtige, hier zu verwenden? Welchen Wert gibt dir das? Es ist schwer zu sagen, ohne die gesamte Konfigurationsdatei zu sehen, aber die Eigenschaft sieht normalerweise so aus: 'TopLevel: NextLevel: connection-string-name'. – DavidG

Antwort

0

wenn ich ein Projekt mit Benutzerkonten mit VS 2015 mit RC1 erstellen die Projektvorlage die Verbindungszeichenfolge wie folgt erzeugt:

{ 
    "Server=(localdb)\\mssqllocaldb;Database=thedbnamehere;Trusted_Connection=True;MultipleActiveResultSets=true" 
} 

ich versuchen würde, sie näher an das zu machen, aber auch fragen, ob für aus irgendeinem Grund UsersInfo kein gültiger Name sein könnte, könnte einige Stichwort Zusammenstoß sein

ich bemerkte, dass gegen die „userSecretsId“ von project.json als dbname verwendet, nicht sicher, ob das erforderlich ist, aber vielleicht versuchen

2
wert sein

Nun, es war etwas einfacher ... Vergessen Sie nicht, iis express zu beenden, wenn Sie die Konfiguration einer ASP.NET Core App ändern, damit Sie die korrekten Konfigurationsdaten erhalten, wenn Sie die App erneut ausführen. Das Problem war, dass, wenn ich den Pfad eingefügt:

Server=(localdb)\\mssqllocaldb... 

in die JSON-Datei, VS 2015 automatisch die Zeichenfolge entkommen, verwandelt sie in:

Server=(localdb)\\\\mssqllocaldb... 

Ja, ich habe es bemerkt, aber nur nachdem versucht wurde, die App im Browser zu laden. Ich habe den Pfad korrigiert, aber die IIS Express-Instanz, die ich zum Testen meiner App verwendet habe, nicht gelöscht. Daher war die Fehlermeldung absolut korrekt, weil sie immer noch den alten Pfad verwendete (der versuchte, die mssqllocaldb-Instanz zu erreichen, die auf einem lokalen Datenbankserver lief).

Wieder, dummer Fehler. Hoffe, dass mein Fehler wird jemand anderen 30 Minuten in der Zukunft speichern ...

+0

Hinzufügen zu diesem. Ich kam hierher, indem ich versuchte, eine Verbindung zu (localdb) \\ mssqllocaldb anstelle von (localdb) \ mssqllocaldb im Server-Explorer herzustellen. Vielleicht wird jemandem dadurch geholfen. – Edza

Verwandte Themen