Laden...

Applikation läuft unter Win7 nicht (Sql-Fehler 26)

Erstellt von oehrle vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.067 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 8 Jahren
Applikation läuft unter Win7 nicht (Sql-Fehler 26)

Hallo, ich probiere schon seit Tagen immer wieder das Problem in den Griff zu bekommen. Leide ohne Erfolg.
Ich habe eine Applikation, die ich auf meinem Win7-Rechner entwickelt habe uaf divesen WinXP-Maschinen laufen. Ohne Probleme.
Wenn ich aber die Applikation auf einem Win7-Rechner in unserer Fertigung starte, dann kommt nach einiger Zeit eine SQL-Exception mit dem bekannten Errorcode 26. Ich habe in meinem Code mal die Verbindung und das Select-Command ausgeben lassen, das sieht bei WinXP und Win7 identisch aus. Der User ist auch auf dem Sql-Server angelegt.

Ich denke es hängt mit der Plattform zusammen. An den Einstellungen habe ich auch schon gedreht. Ich habe als Zeilplattform "Any CPU" ausgewählt. Dann läuft die Applikation auch unter WinXP, aber immer noch nicht in Win7.

Kann das noch mit Sql-DLL's zusammenhängen? Es muss doch aber möglich sein, die Anwendung komplett als x86 laufen zu lassen.

Übrigens: auf meinem Rechner habe ich VS2103, das ist aber in Programfiles(x86) installiert.
Stelle ich dann in der Erstellen-Maske ganz oben bei "Plattform" die "x86" ein?

F
10.010 Beiträge seit 2004
vor 8 Jahren

VS.NET 2012 ( und selbst 2015 ) sind X86 Programme und werden deshalb auch dort installiert.

Und dein Fehler hat gar nichts, aber auch überhaupt nichts mit X86 oder X64 zu tun.
Dein Rechner findet den SqlServer schlicht nicht.
Wie sieht der Connectionstring aus?

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 8 Jahren

Hallo, hier der Screenshoot. der sieht bei den WinXP-Maschinen und den Win7-Maschinen identisch aus.
Was ja komisch ist, es gab von dem Programm eine ältere Version, da hat das auch auf den Win7-Maschinen funktioniert.

H
523 Beiträge seit 2008
vor 8 Jahren

Kommst Du vom Management Studio von dem Win7-Arbeitsplatz auf die Datenbank?

Helfen, dem Problem auf die Schliche zu kommen, könnte Dir auch dieser Beitrag: [gelöst] SQL Networkinterface Error 26

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 8 Jahren
Sql NetworkInterface 26

Hallo, ich muss warten bis unser Admin wieder da ist.
Aber: Ich denke das kann es nicht sein, da die Vorgängerversion funktioniert.
Nur das neue Version mit zusätzlichen Features geht nicht mehr auf den Win7-Rechnern.
Außer an meinem Entwicklungsrechner (Win7) geht es.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 8 Jahren
Kein Plattformproblem

Hallo, es ist wohl ein anderes Problem. Ich habe die *.exe auf den Server gestellt.
Die WinXP-Maschinen können ohne Probleme mit dem Kompilat arbeiten, aber bei Win7 geht das wohl nicht (wohl wegen den SQL-Abfagen). Kann man das umgehen?

F
10.010 Beiträge seit 2004
vor 8 Jahren

Da du schon den Fehler durch vernünftiges Loggen und Debuggen nicht weiter beschreiben kannst, wie sollen wir das in unserer Glaskugel erkennen?

Meine SW läuft auf so ziemlich allem mit MS Sql Server abfragen, egal ob in Behörden ( man sind da paranoide Admins unterwegs ) als auch auf W2000 bis W10.

Zeig doch wenigstens mal die echte ganze Exception und auch das ganze Cmd.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 8 Jahren

Hallo FZelle, hier die Methode für den Connection-String und dann noch ein Sreenshoot als Dausgabe bei der Fehlersuche.


        /// <summary>
        /// Mit den übergebenen Argumenten wird ein Connection-String als "String" zurückgegeben.
        /// </summary>
        /// <param name="serverInstanz"> Server-Instanz</param>
        /// <param name="datenbankName">Name der Datenbank</param>
        /// <param name="integrierteSicherheit">Integrierte Sicherheit <c>false</c> oder <c>true</c></param>
        /// <param name="userID">Username</param>
        /// <param name="passWort">Passwort</param>
        /// <returns>Connectionstring als Text</returns>

        internal static string SqlConnectionErstellen(string serverInstanz, string datenbankName, bool integrierteSicherheit, string userID, string passWort)
        {
            SqlConnectionStringBuilder sqlConnectionStringBuilder = null;

            sqlConnectionStringBuilder = new SqlConnectionStringBuilder()
            {
                DataSource = serverInstanz, 
                InitialCatalog = datenbankName, 
                IntegratedSecurity = integrierteSicherheit, 
                UserID = userID, Password = passWort, 
                ConnectTimeout = 60
            };
            
            if(integrierteSicherheit)
                sqlConnectionStringBuilder = new SqlConnectionStringBuilder()
                {
                    DataSource = serverInstanz, 
                    InitialCatalog = datenbankName, 
                    IntegratedSecurity = integrierteSicherheit, 
                    ConnectTimeout = 60
                };
          

            return sqlConnectionStringBuilder.ToString();
        }

Also, wie gesagt an den Win7-Maschinen läuft das Programm. Problem war, das die *.exe auf einem Serververzeichnis liegt (die komplette Applikation mit Konfigurationsdatei und DLL's) und ich das VErzeichnis lokal auf die Win7-Maschinen kopieren muss damit die SQL-Abfragen laufen. Mit den WinXP-Maschinen ist das kein Problem, läuft vom Netzlaufwerk.
Ich mache das immer erst so, damit wir ein paar Tage die Version auf Stabilität testen können, und verteile sie dann per ClickOnce. Kann es damit zu tun haben?

16.842 Beiträge seit 2008
vor 8 Jahren

Das ist ein normales Verhalten der Code Access Security, die es so eben unter XP nicht gab.
Und ja, das hat was mit ClickOnce zutun.