Έτσι όπως έχεις γράψει τον κώδικα είναι λογικό να μην εμφανίζεται κανένα μήνυμα σφάλματος, γιατί το εξαφανίζεις στο Catch. Εφόσον θέλεις να επιστρέφονται τα σφάλματα στον client, βγάλε το catch. Αν θέλεις να μην επιστρέφονται τα λάθη, χρησιμοποίησε κάποια από τις μεθόδους της System.Debug.Trace για να γράψεις κάποιο μήνυμα λάθους σε ένα log file ή το Event Log.
Το πρόβλημα σου πάντως πρέπει να βρίσκεται στον τρόπο με τον οποίο καλείς το web service. Αν το πρόβλημα ήταν στο ίδιο το web service θα είχες πρόβλημα και όταν το καλείς από τον Internet Explorer. Δοκίμασε να καλέσεις το web service μέσα από ένα απλό console application ή κάποιο απλό winforms application για να εξασφαλίσεις ότι το πρόβλημα δεν είναι στη σύνδεση του mobile app με το web service
Τέλος, υπάρχει πολύ καλύτερος τρόπος να κλείσεις αυτόματα το connection σε περίπτωση λάθους, χρησιμοποιώντας τη Using όπως παρακάτω. Η Using αναλαμβάνει να κάνει Dispose την myConnection ακόμα και αν υπάρξουν exceptions, όταν ο κώδικας φτάσει στην End Using. Επίσης, πρόσεξε ότι έχω βάλει την Throw μέσα στην Catch. Αφού δεν ξέρω τί να κάνω με το exception, το στέλνω σε όποιον με κάλεσε ελπίζοντας ότι θα το χειριστεί αυτός. Τέλος, θα πρέπει να ξαναγράψεις το query έτσι ώστε να χρησιμοποιεί παραμέτρους, καθώς αυτό είναι πολύ γρηγορότερο και πολύ ασφαλέστερο από το να φτιάχνεις ένα χύμα string:
<WebMethod()> _
Public Function sendData(ByVal a As String, ByVal b As String, ByVal c As Integer) As Integer
Using myConnection As New SqlClient.SqlConnection("Data Source=192.168.0.1;Initial Catalog=aaa;user id =sa;password=1;")
Dim sqlInsert As String = String.Format("Insert into MinosKliseis(KlisiID,KlisiNumber,ArKukloforias) values(-1,'{0}','{1}')", b, c)
Dim MyCommand As New SqlClient.SqlCommand(sqlInsert,myConnection)
myConnection.Open()
Try
MyCommand.ExecuteNonQuery()
myConnection.Close()
Catch exep As Exception
Trace.TraceError(exep.ToString())
Throw
End Try
End Using
End Function
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos