2010-05-18 8 views
7

Ist es möglich, eine Verbindung zu einer SQL Server Express 2008-Datenbank in ASP.NET mit einem Servernamen von (local) wie "server = (local); integrierte Sicherheit = SSPI ; Datenbank = DBNAME "?SQL Server Express 2008 verwendet (lokal) in Verbindungszeichenfolge

Ich arbeite mit einem anderen Entwickler an einem Projekt und es wird nervig, dass ich 2 verschiedene Versionen von web.config haben muss, weil er SQL Server 2008 benutzt und (lokal) funktioniert, aber ich kann es nicht bekommen lokal mit SQL Server 2008 Express arbeiten.

Die Datenbank befindet sich auf demselben Computer wie der .NET-Code, falls dies wichtig ist.

Danke.

+0

Sind Sie sicher, dass Ihre SQL Server Express-Installation keine benannte Instanz ist? – PatrickJ

+0

Nein, ich bin mir nicht sicher. Wie würde ich das überprüfen? –

+0

SQL Server Express-Installationen werden * immer * benannt. –

Antwort

1

Sie können das Tool SQL Server Configuration Manager verwenden, um einen Alias ​​zu erstellen. Geben Sie dem Alias ​​auf Ihrem Computer denselben Namen, und verweisen Sie dann auf den Alias ​​in Ihren Konfigurationsdateien.

Ich weiß nicht, ob das Configuration Manager-Tool tatsächlich in der Express-Version von SQL Server enthalten ist, aber wenn nicht, können Sie einfach den Registrierungsschlüssel verwenden (funktioniert immer noch mit Express-Editionen). Nehmen Sie einfach Ihre Mitarbeiter den Alias ​​einrichten und exportieren Sie dann den folgenden Registrierungsschlüssel:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo

Sie können dann den Schlüssel auf dem lokalen Computer importieren. Die Dinge sind etwas komplizierter, wenn Sie auf 64-Bit-Windows sind (weil Sie den Alias ​​in der 64-Bit-und 32-Bit-Registrierung einrichten müssen).

+0

Ich bin auf einer 64-Bit-Maschine. In SQL Server-Konfigurations-Manager habe ich einen Alias ​​unter den 32-Bit- und 64-Bit-SQL Native Client 10.0-Konfigurationsabschnitten eingerichtet. Wenn ich diesen Alias ​​als Servernamen in der Verbindungszeichenfolge verwende, erhalte ich den folgenden Fehler: "Beim Herstellen einer Verbindung zu SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht verfügbar. Überprüfen dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass er Remoteverbindungen zulässt (Provider: SQL Network Interfaces, Fehler: 26 - Fehler beim Auffinden des Servers/der Instanz) " –

+0

Also noch ein bisschen Information, die meiner Meinung nach hilft Ich Probleme ist, dass ich eine Vollversion von 2005 auf dem gleichen Rechner installiert habe.Wenn ich zu SSMS gehe und mich mit (lokal) verbinde, bringt es mich zur 2005-Instanz. Ich habe auch gerade gesehen, dass, wenn ich zum SQL Server Configuration Manager für meine 2005-Instanz gehe es jetzt auch die Alias ​​aufgeführt hat. Ich denke, dass die Deinstallation 2005 nur meine Probleme lösen könnte. –

+0

Ein weiterer Tipp zum Einrichten des Alias ​​... Wenn es sich um localhost handelt, können Sie "Named Pipes" für das Protokoll verwenden. Das funktionierte für mich, während ich das TCP-Protokoll nicht funktionieren konnte, selbst nachdem ich das Protokoll aktiviert hatte. –

4

Angenommen, Sie beide SQL Express mit dem Standardinstanzname "SQLEXPRESS" installiert haben, können Sie 1 Verbindungszeichenfolge haben wie: ""

server=.\SQLEXPRESS;integrated security=SSPI;database=DBNAME 

Die in der Verbindungszeichenfolge wird verwendet, um den lokalen Computer darzustellen.

+0

Ich würde dies als meine Antwort veröffentlichen, aber es sieht aus wie Wallace hier zuerst kam. – War