Frage

ist ein Fehler aufgetreten, während eine Verbindung mit dem Server aufzubauen. Wenn zu SQL Server 2005 verbindet, kann dieser Fehler dadurch verursacht werden, dass Server unter den Standardeinstellungen von SQL erlaubt keine Remote-Verbindungen. (Anbieter: Named Pipes-Anbieter, Fehler: 40 - kann keine Verbindung zum SQL Server öffnen)

Hallo, ich bin neu auf die Entwicklung von auf SQL Server 2005. Ich für mehrere Jahre mit SQL Server 2000 gearbeitet habe, aber nach den üblichen Sachen tun ich mit dem Server verbinden, muss ich diese Ausnahme auf dem Web-Server erhalten.

Es gibt mehrere Links auf Google, die mich auf mögliche Lösungen zeigen, aber keiner von ihnen hat mein Problem gelöst. Ich habe Änderungen auf einer „Fläche, was auch immer ...“ gemacht Dialog (Was zum Teufel ist das ??? Warum SQL Server so viel geändert hat ??? Es ist nun so kompliziert scheint).

Ich habe dafür gesorgt, dass SQL Server 2005 eingehende Verbindungen richtig auf der Instanz von Datenbankserver konfiguriert ist, zu ermöglichen. Ich habe auch Automatische als Starttyp ausgewählt, um SQL Server-Browser-Dienst automatisch bei jedem Systemstart gestartet werden. Und nein, es gibt keine Firewall läuft.

Ich habe versucht, die Verbindungszeichenfolge zu ändern, einen Port zu verbinden mit, über die IP zu verbinden, mit dem Instanznamen zu verbinden ...

Nichts scheint zu funktionieren, ich bin immer noch die gleichen Fehler. Jeder Hinweis?

Die Beantwortung der Fragen, die Menschen gemacht haben: Ja, ich kann mit Management Studio von einem anderen Computer verbinden. Ja, ich bin sicher, dass es konfiguriert ist, lokalen und Remote-TCP / IP und Named Pipes zu akzeptieren. Ja, ich den Server neu gestartet.

Ich bin mit gemischter Modus Sicherheit, die ich bereits aktiviert. Ich ermöglichte bereits den Benutzer sa. Ich bin in der Datenbank verbinden Lage, eine UDL-Datei verwenden, und ich habe überprüft, dass meine Verbindungszeichenfolge ist OK. Ich kann auf die Datenbank unter Verwendung von DBArtisan und SQL Server-Client-Tool verbinden. Das kann ich sowohl auf dem Server als auch auf einem anderen Rechner. Selbst mit allem, was ...

Die Website noch nicht in der Lage ist, zu verbinden.

Neues Update ... Ich habe den ganzen Tag mit diesem Problem zu kämpfen, und haben immer noch nicht die Ursache herausgefunden. Es scheint, dass die Fehlermeldung, die ich geschrieben ein allgemeiner Fehler ist, dass .net gibt, wenn es nicht in der Lage ist, zu verbinden. Ich legte Müll auf der Verbindungszeichenfolge (Eingabe-Server, die nicht existieren) und ich immer noch die gleichen Fehler.

Dies sind einige der Verbindungszeichenfolgen ich auf dem Server verwendet haben:

Connection = "Integrated Security = SSPI; Data Source = SERVER; Initial Catalog = db; Network Library = DBMSSOCN;"

= Connection "Data Source = SERVER; Initial Catalog = db; User ID = sa; Password = xxxxx;"

Connection = "Data Source = SERVER \ MSSQLSERVER; Initial Catalog = db; User ID = sa; Password = xxxxx;"

Ich habe versucht, die SQL Server-Instanz mit einigen seltsamen Befehl zu registrieren, ich das hier gefunden: http://kb.discountasp.net/article.aspx?id=1041 Zu tun, dass ich das aspnet_regsql.exe Werkzeug. Es ist immer noch nicht funktioniert ...

Ich weiß auch, dass der Server die neueste Version von MDAC auf es installiert ist. Das einzige, was ich auf verdächtig bin, ist, dass der Server verfügt über zwei Datenbank-Engines: Server und Server \ sqlexpress

Hat das etwas mit dem Problem zu tun?

War es hilfreich?

Lösung 9

Ich reparierte das Problem, das ich mit der Verbindung hatte. Das Problem war auf meiner Anwendung. Die Ursache des Problems war, dass eine Verbindungszeichenfolge für die Entwicklung (anstelle der Produktion) Datenbank, die von einem der Dialoge fest einprogrammiert wurde, die Datensätze erzeugt. Dieser Dialog platziert die Verbindungszeichenfolge sowohl auf der web.config, und auf einer versteckten Sourcecode-Datei namens „Settings.settings.cs“. Das Problem wird durch die Festsetzung der Verbindungszeichenfolge an die richtige Stelle gelöst wurde.

Die Fehlermeldung war total irreführend, aber ich war in der Lage, das zu finden, indem man alle Methoden auf der Stack-Trace präsentierten folgende.

Wenn Sie also immer diese Fehlermeldung finden, gibt es Tonnen von möglichen Ursachen. Ihre erste Wette ist die üblichen Schritte für diesen Fehler zu folgen, welche die Überprüfung, dass der Server Remote und lokale Verbindungen erlaubt, und einen Neustart des Browser-Dienst.

Wenn das nicht funktioniert, überprüfen Sie die Stack-Trace, suchen Sie nach Code, der in der Anwendung ist, setzen Sie einen Haltepunkt dort und erkunden Sie alle Eigenschaften auf der Verbindungszeichenfolge. Zumindest das ist, wie ich es gelöst.

Andere Tipps

  

Das einzige, was ich auf verdächtig bin, ist, dass der Server zwei Datenbank-Engines hat: Server und Server \ sqlexpress

Ich denke, dies ist die Ursache des Problems ist. Welche wollen Sie verbinden? Sie müssen die „Instanz“ geben Sie eine Verbindung herstellen.

Angenommen, Sie auf die Server-Instanz anschließen möchten, können Sie Verbindungszeichenfolge dann wie folgt aus (vorausgesetzt, die Standard-Instanzname) aussehen sollte:

Data Source = IhrServer \ MSSQLSERVER ; Initial Catalog = db; User ID = sa; Password = xxxxx;

oder für SQL Express die Verbindungszeichenfolge wie folgt aussieht: Data Source = IhrServer \ sqlexpress ; Initial Catalog = db; User ID = sa; Password = xxxxx;

Können Sie mit dem SQL Server über Management Studio von einem anderen Computer anschließen? Dies könnte helfen Sie verengen, ob es der SQL Server-Konfiguration ist, oder Sie Verbindungszeichenfolge Konfiguration.

Überprüfen Sie die Oberflächenkonfiguration, und stellen Sie sicher, TCP / IP-Verbindungen erlaubt sind.

Dies könnte viele Dinge sein. Das erste, was ich überprüfen würde, ist sicherzustellen, dass Sie auf dem Server mit SQL Server Management Studio eine Verbindung herstellen können. Zweitens, überprüfen Sie die Verbindungszeichenfolge, um sicherzustellen, dass es richtig ist. Oberflächenkonfiguration für lokale Verbindungen nicht gelten sollte.

Versuchen Sie erneut die Installation der neuesten MDAC auf dem Server. Ich hatte mal ein ähnliches Problem und dies löste es.

[ http://www.microsoft.com/downloads/details.aspx?familyid=6c050fe3-c795-4b7d-b037-185d0506396c&displaylang=en][1]

Basierend auf dem Fehler sieht aus wie der Code unter Verwendung von Named Pipes zu verbinden versucht, anstatt TCPIP. Sie können tatsächlich speziell müssen in Ihrer Verbindungszeichenfolge anzuzeigen, dass der SQL-Anbieter verbinden sollte tcpip verwenden, so dass Ihre Verbindungszeichenfolge wie unten aussehen würde.

Mit dem integrierten Authentifizierung (Windows):

Integrated Security = SSPI; Data Source = SERVER ; Initial Catalog = DATABASE ; Network Library = DBMSSOCN ,

Verwenden von SQL-Authentifizierung:

UID = NUTZERNAME ; PWD = Kennwort ; Data Source = SERVER ; Initial Catalog = DATABASE ; Network Library = DBMSSOCN ,

Ich habe so etwas wie dies vor passieren gesehen, wo aus irgendeinem Grunde „Named Pipes“ standardmäßig als Transport / Verbindungsschicht verwendet wird, vor allem, da sowohl die Web-Anwendung und SQL Server auf demselben Computer ausgeführt werden. Ich in der Regel immer tcpip als Transport verwenden oder Netzwerkbibliothek.

Eine weitere Technik zur Problembehandlung ist es, eine UDL (oder Datenverknüpfungsdatei) zu verwenden, um die Verbindung zu beheben. Auf diese Weise können Sie zwischen den Verbindungsanbieter wechseln (ODBC, OLEDB, usw.) und andere Verbindungsoptionen.

  1. Auf dem Schreibtisch oben auf der Maschine kopieren und einfügen neu -.> Textdokument
  2. Benennen Sie die * .txt-Datei TestConnect.udl (Name Materie nicht nur braucht UDL Erweiterung zu sein). Sie sollten das Symbol ändern aus einem Textdatei-Symbol auf ein Symbol, das einen Computer auf einen Datenraster zeigt, oder so ähnlich (mit anderen Worten Fenster sollten für sie ein Symbol haben.).
  3. verdoppeln Sie nun die Datei klicken und Sie erhalten eine „Datenverknüpfungseigenschaften“ Applet angezeigt werden.
  4. siehe
  5. Klicken Sie auf die Registerkarte Provider, und Sie erhalten eine Liste der verschiedenen Verbindungsanbieter zu sehen. Ich würde beginnen, indem nur „Microsoft OLE DB-Provider für SQL Server“ wählen. Damit können wir bestätigen, dass OLE DB verbinden kann oder nicht.
  6. Klicken Sie auf Weiter, und geben Sie den Servernamen oder die IP-Adresse. Wählen Sie Windows NT Integrierte Sicherheit. (Sie können immer wieder kommen und es ändern, um eine SQL-Anmeldung zu verwenden.) An dieser Stelle können Sie „Test Connection“ klicken. Wenn die Verbindung erfolgreich ist, dann wählen Sie einen Datenbanknamen aus der Dropdown-Liste aus.
  7. Schließlich, wenn die Verbindung fehlschlägt, wählen Sie die „Alle“ Registerkarte und suchen Sie dann nach „Network Library“ und seinen Wert bearbeiten, sie auf „DBMSSOCN“.
  8. auf die Registerkarte Verbindung Gehen Sie zurück und klicken Sie auf „Testverbindung“ erneut.
  9. Wiederholen Sie die Schritte 4 und 5 dieses Mal mit den "SQL Native Client" ausgewählt.

Hope, das hilft.

Die Aufforderung wird:

Osql

... erhalten Sie eine Eingabeaufforderung>?

Haben Sie versucht, die Instanznamen in der Verbindungszeichenfolge angeben? Anscheinend SQL Server Express, insbesondere ist, pingelig über die Instanznamen haben.

Ich habe auch herumzustochern mit dem SQL Server Configuration Manager gestartet. Also haben klicken Sie in "SQL Server 2005 Network Configuration" und dann schauen, "Protokolle für InstanceName "? Und Sie aktiviert TCP / IP und Named Pipes?

Haben Sie bei der "SQL Native Client Configuration" auch einen Blick -> "Client-Protokolle", und Sie sehen, dass TCP / IP und Named Pipes auch dort aktiviert ist

?

, um das SQL Server 2005-Oberflächenkonfigurationstool verwenden, klicken Sie auf die „Oberflächenkonfiguration für Dienste und Verbindungen“, dann unter „Database Engine“ -> „Remote-Verbindungen“, was ausgewählt werden? Da es scheint, dass Sie mit Named Pipes zu verbinden versuchen, müssen Sie sicherstellen, dass „lokale und Remote-Verbindungen“ und „über TCP / IP und Named Pipes“ ausgewählt ist.

Wie Sie wahrscheinlich wissen, sobald Änderungen vorgenommen werden, müssen Sie die SQL Server-Instanz über Management Studio beenden und neu starten (Sie brauchen nicht die gesamte Maschine neu zu starten, obwohl die gesamte Maschine Neustart erhalten Sie dort).

Und mein letzter Ratschlag. Schritt weg von diesem für eine Weile, und Ihren Geist für ein paar Minuten davon ab. Wenn Sie wieder tauchen, finden Sie etwas können Sie verpasst haben oder vor übersehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top