Ich habe zwei Windows Server 2012-Computer. Sie sind beide Teil einer Domäne, die ich erstellt habe. Einer ist ein Webserver und der andere ist ein Datenbankserver, der SQL Server 2012 hostet. Vom Webserver kann ich eine Verbindung zum DB-Server mit MSSMS herstellen, aber von einer Anwendung, die ich in IIS geschrieben habe, kann ich keine Verbindung herstellen. Ich erhalte den folgenden Fehler:Verbindung zu SQL Server von IIS
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: 26 - Error Locating Server/Instance Specified)
Ich habe überprüft, dass der SQL Server Remote-Verbindungen ermöglicht.
Ich habe überprüft, dass es das TCP/IP-Protokoll verwendet.
Ich habe versucht, den SQL Server-Computernamen vollständig zu qualifizieren, um name.domain.com einzuschließen.
Ich bin in der Lage, den SQL Server ohne Probleme zu pingen.
Wie bereits erwähnt, kann ich problemlos eine Verbindung von MSSMS herstellen, indem ich sowohl den Computernamen als auch die IP-Adresse verwende.
Ich habe an dieser Stelle auf beiden Rechnern den Windows-Firewall heruntergefahren und habe die Regeln hinzugefügt, die die folgenden Ports geöffnet:
TPC/IP - 135, 1433, 1434, 2382, 2383, 4022
UDP - 1434
Ich öffnete sogar die Ports für den Fall der Öffentlichkeit.
Innerhalb meiner Anwendung habe ich eine statische Klasse, die mir die Verbindungsinformationen gibt. Es sieht wie folgt aus:
static public class _ConnectionData
{
public static string Source = "192.168.0.33"
public static string Catalog = "dbCat";
public static string User = "dbCatUser";
public static string Password = "**********";
public static string ConnectString
{
get { return "Data Source=" + Source + "; Integrated Security=false; Initial Catalog=" + Catalog + "; User ID=" + User + "; Password=" + Password; }
}
}
ich mein virtuelles Verzeichnis in IIS durch Verzeichnis unter inetpub \ wwwroot nur das Kopieren der App einrichten und dann in IIS Admin es zu einer Anwendung zu konvertieren.
Ich bin an diesem Punkt ratlos. Gibt es etwas Spezielles, das ich tun muss, um eine Verbindung von einer IIS Hosted App zu erhalten? Muss ich einen Provider als Teil meiner Verbindungszeichenfolge angeben? Gibt es spezielle Berechtigungen in IIS, die festgelegt werden müssen? Mein AppPool ist auf Integriert gesetzt, ist das korrekt?
Ich bin schon kahl, also bin ich mir zu diesem Zeitpunkt nicht sicher, was ich vielleicht ausziehen werde.
Versuchen Sie Ihren genauen Code von außerhalb von IIS - in einer Konsole App - funktioniert das? (Anstelle von SSMS). Wenn dies der Fall ist, können Einschränkungen für die IIS-Sicherheit (z. B. App-Pool-Konto) beim Erreichen der DB-svr bestehen. –
Hallo Pachy, meine erste Anlaufstelle mit der Anwendung wäre "Integrated Security" aus der Zeichenfolge alle zusammen zu nehmen. Wenn Sie eine Kombination aus Benutzername und Passwort übergeben, ist dies nicht erforderlich. Als nächstes, wie Murray sagte (mich kurz schlagend), würde ich versuchen, mich mit einer Konsolen-App oder sogar mit der Powershell-Verbindung zu verbinden, um sicherzustellen, dass die Verbindungszeichenfolge identisch ist. – Pheonyx
Verbinden Sie sich mit der standardmäßigen oder benannten Instanz? Kann ich von der IP-Adresse zum Hostnamen wechseln? –