.
Anmeldung | Registrieren | Hilfe
in Suchen

DB open zu MYSQL scheitert mit ASP.NET über WebDev.WebServer40.exe

Letzter Beitrag 07. Feb 2012 22:57 von HL1234. 1 Antworten.
Seite 1 von 1 (2 Treffer)
Beiträge sortieren: Zurück Weiter
  • 21. Jan 2012 21:46

    • HL1234
    • Nicht gereiht
      Männlich
    • Registriert am 21. Jan 2012
    • Frankfurt am Main
    • Beiträge 2
    • Punkte 10

    DB open zu MYSQL scheitert mit ASP.NET über WebDev.WebServer40.exe

    Hallo,
    ich suche jetzt schon seit einigen Tagen nach einer Lösung. Hier das Problem in Stichpunkten:

    WebDev.WebServer40 ist der eigene Webserver der das Visual Studio mitbringt,
    heißt auch "ASP.NET Development Server" oder Cassini

    Ich habe eine Datenbankverbindung zu MYSQL-Server programmiert (mysql-connector-net-6.4.5 ist hierfür installiert).

    Der Open-Befehl schlägt aber fehl, mit einer nichtssagenden Fehlermeldung:
    Fehlermeldung:
    "Unable to connect to any of the specified MySQL hosts"

    Der innere Fehler läßt auf Verbindungsschwierigkeiten schliesen:
    Fehlermeldung:
    And the InnerException:
    "System.Net.Sockets.SocketException"
    "error-no 10022: An invalid argument was supplied"
    "Socket Error Code: invalid argument"


    Ich habe daher die Verbindung zur MYSQL-DB auf andere Art und Weise getestet:
    a) mit Server Explorer > Data Connection
    ==> hat Funktioniert
    b) mit einer einfachen WindowsForm-App und Programm-Code:

    using MySql.Data.MySqlClient;
    //...
    String myConnectionString = "server=127.0.0.1;"
                                         + "uid=root;"
                                         + "Persist Security Info=True;"
                                         + "pwd=secret;"
                                         + "port=3333;"
                                         + "database=test;"
                                         + "charset=latin1;"
                                         ;//OK!
               MySqlConnection conMySQL = new MySqlConnection();
               MySqlCommand commMySQL = new MySqlCommand();
               try
               {
                  conMySQL.ConnectionString = myConnectionString;
                  conMySQL.Open();
                  //execute queries, etc
                  commMySQL.Connection     = conMySQL;
                  commMySQL.CommandTimeout = 10;       //10 sec timeout default 30
    
    
                  commMySQL.CommandText = "select name, species from pet;";
    
    
                  MySqlDataReader datareaderMySQL = commMySQL.ExecuteReader();
    
    
                  while (datareaderMySQL.Read())
                  {
                     Console.WriteLine(datareaderMySQL[0]);    //write to Output
                     listBox1.Items.Add(datareaderMySQL[0]+ ", " + datareaderMySQL[1]);
                  }
               }
               catch (MySqlException ex)
               {
                  MessageBox.Show(ex.Number
                                  + ": "
                                  + ex.Message);
               }
               catch (Exception exp)
               {
                //ev. Standardfehler
                  MessageBox.Show("Error: " + exp);
               }
               finally
               {
                  conMySQL.Close();
               } 

    ==> hat funktioniert.

    Nur wenn ich diesen Code in das ASP.NET MVC Projekt eingebe, bei:

    public class CWebAppMVC3 : System.Web.HttpApplication
        {
    protected void Application_Start()
           {
    ...
    }
        }

    dann funktioniert die Verbindung nicht (Fehlermeldung siehe oben) ???

    Ich dachte das ASP.NET vielleicht in einem anderen Sicherheitskontext läuft als eine Windows Anwendung; aber dann habe ich diese Aussage gefunden:
    "The Visual Studio Development Server runs in a different security context than full IIS"
    und bei MSDN:
    "The security context in which the servers run your ASP.NET pages:
    When you run a page using the Visual Studio Development Server,
    the page runs in the context of your current user account.
    "

    Gut, ich bin Admin also läuft auch der VS-Web-Server als Admin - richtig?
    Und ich kann als Admin auch auf die MySQL-DB zugriffen; z.B via MYSQL-QueryBrowser, oder mit Windows Program Code.

    Also, warum klappt das dann mit dem ASP.NET Projekt nicht, aber mit dem Windows-Projekt?

    Wie bekomme ich raus in welchem SecurityContext ich mich befinde,
    wenn ich im Programm auf die MySQL-DB zugreife?

    (Bsys: W2k3-Test-Server + Firewall ist inaktiv, VS2010 Prof, MySQL5.0)

    Vielen Dank!

    Gruß Harald
    • IP-Adresse ist Registriert
  • 07. Feb 2012 22:57 Antwort zu

    • HL1234
    • Nicht gereiht
      Männlich
    • Registriert am 21. Jan 2012
    • Frankfurt am Main
    • Beiträge 2
    • Punkte 10

    DB open zu MYSQL scheitert mit ASP.NET über WebDev.WebServer40.exe

    keine Antwort?
    Gruß Harald
    • IP-Adresse ist Registriert
Seite 1 von 1 (2 Treffer)

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum