Ich habe eine einfache Testanwendung in C # (4.5) geschrieben, die nur eine Verbindung zu einer Datenbank herstellt und eine Meldung anzeigt. (Grundsätzlich nur zum Testen der Bereitstellung und der DB-Verbindung.) Auf meiner lokalen Workstation funktioniert alles einwandfrei. Ich habe SQL Express 2012 installiert, als aktueller Benutzer verbinden (integrierte Sicherheit), keine Probleme.
Bei der Bereitstellung unter Windows Server 2008 kann die Anwendung jedoch keine Verbindung zur Datenbank herstellen. Es wird weiterhin ein Anmeldefehler angezeigt.
Auf dem Server habe ich die gleiche Installation für SQL Express 2012 durchgeführt. Beim Ausführen der Konsolenanwendung bin ich als Administrator angemeldet. Ich habe sogar versucht, die Authentifizierung im gemischten Modus zu aktivieren, einen Benutzer zu erstellen und eine Verbindung als dieser Benutzer herzustellen. Ich kann in SQL Management Studio eine Verbindung herstellen, aber die Anwendung erhält immer den Fehler "Anmeldung fehlgeschlagen".
Gibt es eine versteckte Sicherheitseinstellung in Windows Server 2008, die ich ändern muss, damit eine .NET-Anwendung eine Verbindung zu einem SQL-Server herstellen kann? Was kann dieses Verhalten verursachen, wenn ich mich über SSMS, aber nicht über eine Anwendung in die Datenbank einloggen kann?
Error:
System.Data.SqlClient.SqlException (0x80131904): Die vom Login angeforderte Datenbank "TestDatabase" kann nicht geöffnet werden. Die Anmeldung ist fehlgeschlagen. Anmeldung für Benutzer 'sa' fehlgeschlagen.
Dies ist natürlich die Version des Fehlers, als ich versuchte, eine Verbindung herzustellen sa
als eine Art letzter Versuch zum Testen. Der gleiche Fehler passiert für TestUser
(ein SQL-Benutzer, den ich dafür erstellt habe) sowie PERSONALSERVER\Administrator
(Der aktuell angemeldete Benutzer, der die Anwendung ausführt.)
Die Verbindungszeichenfolgen, die ich ausprobiert habe, sind:
Data Source=localhost\sqlexpress2012;Initial Catalog=TestDatabase;Integrated Security=True
Data Source=localhost\sqlexpress2012;Initial Catalog=TestDatabase;User Id=TestUser;Password=testpassword