Όπως γράψανε και ο Γιώργος και ο Αντώνης, η τεχνολογία του UI (Web ή WPF) δεν έχει τίποτε να κάνει με τον τρόπο σύνδεσης στη βάση (ADO.NET) ο οποίος είναι ίδιος και στις δύο περιπτώσεις. Αυτό που έχει αλλάξει είναι ότι έχεις δύο μηχανήματα σε εντελώς διαφορετικά δίκτυα, με εντελώς διαφορετικό τρόπο σύνδεσης στο server, και για κάποιο λόγο το ένα παίζει, το άλλο δεν παίζει. Αν θέλεις δοκίμασε να συνδεθείς με το Management Studio στον SQL Server για να δεις ότι δεν φταίει το WPF αλλά ότι το desktop μηχάνημα δεν βλέπει καν τον SQL Server.
Αν για παράδειγμα, ο web server και ο SQL server βρίσκονται στο ίδιο subnet στον hoster, προφανώς και βλέπει ο ένας τον άλλο γιατί δεν παρεμβάλλεται firewall. Το desktop μηχάνημα όμως πάω στοίχημα ότι δεν είναι στο ίδιο δίκτυο αλλά στο σπίτι σου ή στο γραφείο του πελάτη. Έχεις ανοίξει πρόσβαση από το γραφείο προς τον hoster? Και αν ναι, το έχεις κάνει με κάποιο VPN ή άνοιξες χύμα το port του SQL Server και όποιος θέλει ας μπει? Αν έστησες VPN, το έχεις ανοίξει πριν δοκιμάσεις να συνδεθείς?
Να σημειώσω πάντως ότι η ιδέα να ανοίξεις το port του SQL Server προς τα έξω είναι μία πάρα πολύ κακή ιδέα. εκτός και αν ξέρεις πως να στήσεις το κατάλληλο infrastructure με VPN, firewalls, encryption κλπ για αποφύγεις επιθέσεις. Είναι προτιμότερο να φτιάξεις ένα API το οποίο θα καλεί η desktop εφαρμογή για να κάνει τη δουλειά της, π.χ ως Web Service, REST Service ή χρησιμοποιώντας WCF και OData
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos