Δεν μας είπες, τη βάση μπορείς να την ανοίξεις στο Management Studio ή μέσω ADO.NET? Είναι όντως κατεστραμμένη, ή η σύνδεση μέσω του προγράμματος σου αποτυγχάνει?
Η επικοινωνία που περιγράφεις με το server είναι αρκετά περίεργη. Αυτή τη στιγμή παρακάμπτεις τη λογική του ADO και αναγκάζεις το server να φερθεί περίεργα. Το NOACK έχει μια απολύτως προσδιορισμένη λειτουργία. Ο server δεν πρόκειται να στείλει τέτοιο μήνυμα αν το πρόβλημα είναι σε SQL, αλλά όταν τα TCP πακέτα που πήρε είχαν πρόβλημα ή για κάποιο λόγο ο ίδιος ο server τα έχασε. Όταν στέλνεις εσύ NOACK στο server του λες το ίδιο. Όταν στείλεις εσύ NOACK στο server δεν του λές "πάρτα οπωσδήποτε", του λές "ξαναστείλτα μου".
Τώρα, ο τρόπος με τον οποίο επικοινωνείς με τη βάση προφανώς προκαλεί πρόβλημα στη βάση. Μπορεί ο τρόπος που χρησιμοποιείς να "ρίχνει" το service που παραλαμβάνει τα πακέτα σου, χωρίς να έχει πάθει ζημιά η βάση.
Αν δεν μας δώσεις αρκετά στοιχεία δεν μπορούμε να σε βοηθήσουμε, καθώς δεν ξέρουμε με ποιό service επικοινωνείς, ποιά πρωτόκολλα προσπαθείς να υλοποιήσεις, αν ακολουθείς το πρωτόκολλο επικοινωνίας του SQL Server ή κάποια προσέγγιση του (δεν εννοώ το TDS, αλλά την αλληλουχία μηνυμάτων που απαιτούνται).
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos