Προς το περιεχόμενο

C# κρασάρει όταν ξεκινάει process


Shant
Μετάβαση στην απάντηση Απαντήθηκε από παπι,

Προτεινόμενες αναρτήσεις

Ο κώδικας που εμφανίζει το πρόβλημα είναι ο εξής (τα ονόματα σε αγκύλες []για ανωνυμία):

            ProcessStartInfo peidvor = new ProcessStartInfo("sqlcmd", @" -S [SERVERNAME]\[DATABASEENGINE] -d [DATABASE] -i \\[SERVERNAME]\[FOLDER]\[QUERYFILE].sql -U XXX -P XXX")
            {
                UseShellExecute = false,
                CreateNoWindow = true,
                WindowStyle = ProcessWindowStyle.Hidden,
                RedirectStandardOutput = true
            };
            Process proceidvor = new Process() { StartInfo = peidvor };
            proceidvor.Start();
            proceidvor.WaitForExit();
            MessageBox.Show("              OK");

Ουσιαστικά ο κώδικας τρέχει ένα query από ένα αρχείο στον τοπικό server, σε μια βάση δεδομένων στον ίδιο server. Σε όλους τους υπολογιστές στο τοπικό δίκτυο δουλεύει σωστά, αλλά σε ένα καινούριο κρασάρει στο proceidvor.Start(); με σφάλμα "Δεν είναι δυνατή η εύρεση του καθορισμένου αρχείου από το σύστημα"

Όλοι οι υπολογιστές τρέχουν win 10 Pro 64 bit, έχουν γίνει οι απαραίτητες ενημερώσεις, και στον καινούριο δεν άλλαξε κάτι όταν ενημέρωσε σε.NET Framework 4.8.2. Ο χρήστης έχει πρόσβαση και στη βάση και στο αρχείο με το query

 

Το stack trace:

 

System.ComponentModel.Win32Exception (0x80004005): Δεν είναι δυνατή η εύρεση του καθορισμένου αρχείου από το σύστημα
   σε System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   σε Grammateia.MainForm.beidivort_Click(Object sender, EventArgs e) στο C:\Users\harorfa\Desktop\Grammateia\MForm.cs:γραμμή 116
   σε System.Windows.Forms.Control.OnClick(EventArgs e)
   σε System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   σε System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   σε System.Windows.Forms.Control.WndProc(Message& m)
   σε System.Windows.Forms.ButtonBase.WndProc(Message& m)
   σε System.Windows.Forms.Button.WndProc(Message& m)
   σε System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Τι μπορεί να φταίει;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι ο χρήστης έχει πρόσβαση, το αρχείο το έλεγξα και ανοιγει.

Δεν έχω δοκιμάσει να δω αν έχω πρόσβαση στη βάση (θα πρέπει να εγκαταστήσω sql management studio) αλλά στον υπολογιστή υπάρχουν άλλες εφαρμογές που αντλούν δεδομένα από άλλες βάσεις στο ίδιο database engine, οπότε θεωρητικά θα πρέπει να έχει πρόσβαση και εκεί

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Λύση

Τι να σου πω. Αντι να σπας το κεφαλι σου, κανε ενα απντειντ στο απ. Βαλε να τσεκαρει αν υπαρχει sqlcmd, αν υπαρχει connection με την βαση και αν υπαρχει το αρχειο. Γενικα οταν γραφεις κατι το οποιο ειναι depend σε κατι αλλο, παντα να τσεκαρεις.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

εγκατέστησα SSMS και δεν άλλαξε κάτι (αν και απ ό,τι διάβασα θα έπρεπε να περιέχει το sqlcmd)

Μετά κατέβασα τα command utilities από εδώ και δούλεψε

Σ ευχαριστώ παπι

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...