Jump to content

C# Webservice kann nicht zu SQL Datenbank verbinden


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo zusammen!

 

Ich habe einen kleinen Webservice gebastelt, der einen Datensatz aus einer entfernten Datenbank an das aufrufende Programm liefern soll. Leider bekomme ich immer folgende Fehlermeldung:

 

Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes-Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden)

 

Mit anderen Programmen, zB dem SQL Query Browser, kann ich auf die Daten zugreifen.

 

Um den Code, der den Fehler produziert auf ein Minimum zu reduzieren, habe ich mal folgedes Programm getippt:

 

 

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.IO;
using System.Text;

namespace Test_DB_Operationen
{
   /// <summary>
   /// Zusammenfassungsbeschreibung für Service1
   /// </summary>
   [WebService(Namespace = "http://tempuri.org/")]
   [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
   [ToolboxItem(false)]


   public class Service1 : System.Web.Services.WebService
   {
       // Benutzer senden
       [WebMethod]
       public string GetUsers()
       {
           DataSet ds = new DataSet();
           SqlConnectionStringBuilder conBuilder = new SqlConnectionStringBuilder();
           conBuilder.DataSource = "192.168.0.100";
           conBuilder.InitialCatalog = "Benutzerdaten";
           conBuilder.UserID = "DB_Benutzername";
           conBuilder.Password = "DB_Passwort";
           SqlConnection con = new SqlConnection(conBuilder.ConnectionString);
           try
           {
               con.Open();
           }
           catch (Exception e)
           {
               con.Close();
               return e.Message;
           }
           con.Close();
           return conBuilder.ConnectionString;
       }
   }
}

 

Ausgabe:

 


<?xml version="1.0" encoding="utf-8" ?> 
 <string xmlns="http://tempuri.org/">Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes-Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden)</string> 

 

Was muss ich machen, um an die Daten in der Datenbank heranzukommen? Ich weiß leider nicht mehr weiter...

 

Gruß,

 

KB

Geschrieben

Moin KB

 

Also fangen wir mal ganz klein an:

Auf was für einen SQL-Server versuchst du denn zuzugreifen? (Welche Version, Edition)

Hast du ausser Named Pipes auch TCP/IP in der SQL Server Network Configuration freigeschaltet?

Hast du eine Named Instance installiert?

 

Gruß

Geschrieben (bearbeitet)

also die Datenbank liegt aus einem Suse 10.3 Rechner. Da läuft ein MySQL_Server in der Version 5.0.45. Soweit ich das rausfinden konnte, unterstützt dieses Datenbankmanagementsystem keine Named Pipes.

Deswegen würde ich die gerne im Visual Studio ausschalten und über ein anderes Protokoll gehen (TCP/IP?).

 

mit dem SQL Query Browser funktioniert die verbindung von dem gleichen rechner aus zur Datenbank.

 

 

EDIT: anscheinend kann ich über tcp/ip gehen, indem ich dem conBuilder.DataSource = "134.130.88.5,1433" setze. leider kommt dann eine andere fehlermeldung, nämlich:

Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: TCP-Provider, error: 0 - Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.)
bearbeitet von Klimmbimm
Geschrieben
Hast du einen mySQL-Connector für .NET im Boot?

How to connect to MySQL 5.0 using c# and mysql connector/net!

 

Denn das was du da verwendest ist AFAIK der Connector für einen MS SQL Server.

 

Gruß

 

hm, achso, davon höre ich grade zum ersten mal.

also muss ich mir zuerst noch was dazu installieren? ich dachte die .NET Bibliotheken wären so schön umfangreich. Gibt es da kein "Hausmittel", dass auch MySQL-Verbindungen kann?

Ich werds mal mit dem genannten mySQL-Connector testen... melde mich dann nochmal.

 

EDIT: nehme den connector 6.0 (http://dev.mysql.com/downloads/connector/net/6.0.html )

Geschrieben
hm, achso, davon höre ich grade zum ersten mal.

also muss ich mir zuerst noch was dazu installieren? ich dachte die .NET Bibliotheken wären so schön umfangreich. Gibt es da kein "Hausmittel", dass auch MySQL-Verbindungen kann?

Ich werds mal mit dem genannten mySQL-Connector testen... melde mich dann nochmal.

 

Und du programmierst Datenbank Anwendungen?

Geschrieben
Und du programmierst Datenbank Anwendungen?

Irgendwann hat jeder mal angefangen. Ich find das jetzt nicht weiter verwerflich. Ganz im Gegenteil.

 

EDIT: nehme den connector 6.0 (MySQL :: Connector/Net 6.0 )

Viel Erfolg dabei. Wenn du so nett bist, kannst du ja mal ein Feedback bezüglich Zugriffsperformance des Connectors und Stabilität posten, wenn du deine Implementierung fertig hast.

Geschrieben

also meine testanwendung funktioniert jetzt!!!

 

kam mir auch relativ schnell vor: ca. 200 datensätze in ein dateset geladen und zurückgegeben -> ca. 1 oder 2 sekunden (ich schätze mal, dass die meiste zeit noch drauf ging um den browser zu öffnen - hab halt nur debuggt)

 

Danke sehr, phoenixcp!

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...