Web.config-Verbindungszeichenfolge funktioniert mit falschen Werten – aber warum?

Ich bin mit der .net Verbindung zu SQL server 2012 stecken. Nach dem Lesen von Dutzenden von Tutorials und Fragen konnte ich keinen Hinweis finden. Für mich scheint es zu viel Magie mit SQL server zu gehen. Ich verwende Visual Studio Express 2012 für Web, SQL server 2012, .net 4.5

Andere Leute beschweren sich über keine Verbindung mit dem richtigen Anschlussstich. Aber ich habe eine databaseverbindung mit einer WRONG-Verbindungszeichenfolge. Aber ich bin nicht glücklich darüber 😉

Dies ist meine Verbindungszeichenfolge mit nur falschen Werten:

<connectionStrings> <add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="server=localhost;Database=ThisDoesNotExist;User Id=ThisIsNoUser;Password=ThisCanNotPossiblyWork;" /> </connectionStrings> 

Wenn ich die Seite lokal auf meinem PC laufe, funktioniert es gut, mit SQL server Management Studio kann ich sehen, dass eine database erstellt und ordnungsgemäß ausgefüllt wird. Wo ist die verborgene Einstellung für die echte Verbindung – warum funktioniert das?

Und eine zweite Frage in diesem Problembereich:

Gibt es ein einfaches Tutorial für eine Einrichtung von SQL server 2012 mit Benutzer + Passwort und WITH Einrichtung der Verbindungszeichenfolge für .net? (ohne das SQL server Management Studio zu verwenden: Auf meinem server ist SQL server 2012 installiert, aber kein Management Studio) Ich habe dieses Verfahren vor einigen Wochen auf einem anderen PC durchgemacht und hatte Schwierigkeiten, den SQL server richtig einzustellen. Ich mag explizite Verbindungszeichenfolgen, konnte aber nicht verstehen, wie man es in SQL server 2012 macht.

Ich bin dankbar für alle Hinweise in die richtige Richtung.

edit: Ich benutze Entity Framework. Dies ist der Code für meinen databasekontext.

 public class DBContext : DbContext { public DBContext() { } public DbSet<Speaker> Speakers { get; set; } //... } 

Ich habe den DBContext-Konstruktor editiert und einen Aufruf zum Basisklassen-Konstruktor hinzugefügt, der einen connectionStingName bereitstellt. Jetzt funktioniert die database nicht – wie gewünscht – denn die Verbindungszeichenfolge "DataBaseFirstDBEntities" wurde noch nie definiert :-). Ich werde versuchen, von hier mit einer expliziten Einstellung zu gehen.

 public DBContext() : base("name=DataBaseFirstDBEntities") { } 

Die Frage bleibt: Warum funktioniert es ohne eine Verbindungszeichenfolge?

Mit einer expliziten Verbindungszeichenfolge konnte ich eine "echte" Verbindung ohne "Magie" bekommen, und das funktioniert für mich:

 public DBContext() : base("name=DataBaseFirstDBEntities") { } 

Ich bin immer noch verwirrt, warum eine Verbindung ohne Einstellung funktioniert, aber ich neige dazu zu denken, dass dies mit der Windows-authentication für den SQL server zu tun hat: Da der Web-server-process die gleichen Benutzeranmeldeinformationen wie der SQL-server hat (auf meiner lokalen Entwickler-Maschine ) das scheint eine vernünftige erklärung zu sein.