Verbinden mit SQL server benannte Instanz von Windows 64bit

Ich habe sowohl Java- als auch .NET-Anwendungen, die auf einem App-server mit Microsoft Windows server 2003, Enterprise Edition ausgeführt werden. Diese werden auf einen anderen App-server Windows 2008 64-Bit-Maschine migriert.

Alle Anwendungen verbinden sich mit derselben SQL server 2005-database auf einer benannten Instanz.

Bisher habe ich versucht, die Anwendungen genau so zu verschieben, wie sie sind, ohne Änderungen in den configurationsdateien, von der alten Box in die neue Box.

Auf dem neuen App-server verbinden sich weder die Java- noch die .net-Anwendungen mit der database (benannte Instanz).

JDBC-Fehlermeldung: "Die Verbindung zur benannten Instanz ist fehlgeschlagen. Fehler: java.net.SocketTimeoutException: Receive timed out."

Die .net-Fehlermeldung: "Beim Herstellen einer Verbindung zu SQL server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der server wurde nicht gefunden oder war nicht zugänglich."

Wenn ich die DB-config auf eine, die nicht auf einer benannten Instanz ist, funktioniert es auf dem neuen App-server.

Die database ist korrekt eingerichtet, da wir uns auf dem alten App-server verbinden konnten. Ich kann den databaseserver vom neuen App-server aus pingen.

Gibt es einen Grund, dass dies nicht auf dem neuen App-server funktionieren wird?

java-Verbindungszeichenfolge: "jdbc: microsoft: sqlserver: // [dbservername]; SelectMethod = Cursor; instanceName = [dbinstance]"

.net Verbindungszeichenfolge: "server = [dbservername] \ [dbinstance]; database = Risk_DB; Uid = [user]; Pwd = [pwd];"

UPDATE Pro Anregungen in den Antworten, bekam ich die Instanz Portnummer. Ich habe auch SQL server Management Studio installiert, damit ich meine Apps als Problem Punkte beseitigen kann. Von Management Studio, wenn ich [servername] [instancename] verwende, bekomme ich die Meldung "ein netzwerkbezogener oder instanzspezifischer Fehler beim Aufbau einer Verbindung zu SQL server …" Aber es funktioniert, wenn ich [servername], [ Hafen]. Nicht sicher, ob es irgendwie gibt, um das zu umgehen?

UPDATE # 2 Eskalierte das Problem auf das Infrastruktur- / server- / Netzwerkteam. Sie deaktiviert Windows-Firewall auf dem neuen App-server. Presto, jetzt kann ich mich mit [dbservername] \ [dbinstance] in Management Studio verbinden und alle Apps arbeiten mit vorhandenen configurationsdateien.

Ihre benannte Instanz läuft auf einem anderen Port. Port 1433 (die Voreinstellung für eine Standardinstanz) ist wahrscheinlich geöffnet, und der Port, auf dem die benannte Instanz ausgeführt wird, ist wahrscheinlich blockiert. Sie können den Port im Fehlerprotokoll für die benannte Instanz überprüfen (vorausgesetzt, Sie können lokal eine Verbindung herstellen, im object-Explorer erweitern, den server erweitern, die Verwaltung erweitern, SQL server-Protokolle erweitern, mit der rechten Maustaste klicken und "View SQL server Log" IIRC auswählen ), es wird so etwas beim Start sagen:

server is listening on [ 127.0.0.1 <ipv4> 3587 ]. 

Diese letzte Nummer ist die Portnummer, die von Ihrem entfernten Rechner aus zugänglich sein muss und welche Netzwerkgeräte und -dienste es durchlaufen muss, um dorthin zu gelangen. Wenn du keine solche Zeile findest, ist es möglich, dass TCP / IP für die benannte Instanz nicht aktiviert ist. Auf diesem server gehen Sie zu SQL server Configuration Manager, erweitern Sie SQL server Network Configuration, klicken Sie auf "Protocols for" und stellen Sie sicher, dass TCP / IP im rechten windows aktiviert ist. Wenn du das aktivieren musst, musst du SQL server neu starten, damit es wirksam wird.

Wenn es bereits aktiviert ist (oder nachdem Sie es aktiviert und den Dienst neu gestartet haben), sollten Sie in der Lage sein, diese view zu aktualisieren und den Port zu validieren, der verwendet wird, wenn Sie mit der rechten Maustaste auf TCP / IP klicken, die properties treffen und in die IP wechseln Registerkarte Adressen. Sie können die Ports sehen, die derzeit für jede IP sind. Hier gibt es mehrere IPn-Abschnitte und einen IPAll-Bereich. Für jede IP können Sie das Feld "TCP-Port" in einen Port ändern, den Sie verwenden möchten (und löschen Sie alle Werte im Feld "Dynamische TCP-Ports" auf 0). Klicken Sie auf Apply und starten Sie den Dienst neu. Dies wird wiederum einen Neustart des Dienstes erfordern, aber es wird Ihnen erlauben, einen bestimmten Port anzugeben, so dass Sie einen Ausschluss zu Ihrer Firewall hinzufügen können (oder verwenden Sie einen, der bereits existiert, vorausgesetzt, dieser server ist nicht bereits mit diesem Port).

Mögliche Probleme:

  • Firewall blockiert möglicherweise Verbindungen.
  • Der Instanzname ist nicht derselbe wie in der Verbindungszeichenfolge angegeben.
  • Die Verbindungszeichenfolge spezifiziert einen anderen Port oder SQL server läuft auf einem anderen Port anstatt der Standard-1433