2010-10-26 6 views
2

Quelle est la manière correcte de gérer les erreurs côté client des applications Silverlight? J'ai essayé de construire un point de terminaison de service qui recevrait des détails sur l'erreur, puis j'écrirais cette chaîne dans la base de données. Le problème est, le texte de l'erreur dépasse la longueur maximale des octets, donc je ne peux pas envoyer le message d'exception et stacktrace. Quelle serait la meilleure façon de gérer les erreurs qui se retrouvent chez le client?Consignation des erreurs dans Silverlight

Répondre

0

Si vous trouvez un message est trop long pour envoyer à votre service Web d'enregistrement puis essayez de définir vos propriétés de liaison tels que maxBufferSize et maxStringContentLength pour des valeurs suffisamment grandes. Ils par défaut à 16 Ko, personnellement, j'ai mis le mien à 2147483647 (qui est int.MaxValue). Il est évident que vous ne pouvez pas envoyer l'exception brute directement au service Web de journalisation (les exceptions ne sont pas sérialisables), ce que j'ai fait était écrire une fonction qui prend une exception et la déplace, la traduisant en une structure conviviale WCF passé à mon point de fin de journalisation. Bien sûr, vous devez vous assurer que si cela échoue, vous avez un plan de sauvegarde, comme peut-être le connecter à un stockage isolé si vous utilisez le navigateur, ou vous connecter au système de fichiers de l'utilisateur si vous exécutez OOB élevé.

0

Vous ne devriez pas envisager d'enregistrer les messages d'erreur via un service. Que faire si l'erreur que vous souhaitez enregistrer est liée au service lui-même? Peut-être que le serveur qui héberge tous les services dépendants (y compris le service de consignation des erreurs) n'est pas joignable ou inaccessible. les erreurs client doivent être consignées côté client et renvoyées périodiquement au serveur lorsque la connectivité au service est disponible.

Thats ce que je ferais ...

0

Jetez un oeil à la nouvelle Silverlight Integration Pack pour Enterprise Library de Microsoft patterns & practices. Il fournit la plomberie pour la journalisation (côté client et via un service distant) et la gestion des exceptions avec une configuration flexible des stratégies via la configuration ou par programmation.

Questions connexes