WCF exception passer pour le client
J'ai un service qui peut lancer des exceptions. Je veux être capable d'attraper les exceptions au client. Les principales Exceptions, je suis intéressé par sont DbUpdateException
et InvalidOperationException
. Pour le reste des exceptions, il suffit de savoir qu'une exception a été lancers.
Comment puis-je avoir des exceptions pris dans la client?
Pour le bénéfice des chercheurs, cet article a également de bonnes infos sur la conversion des Exceptions/FaultExceptions - msdn.microsoft.com/en-us/library/ff649840.aspx
OriginalL'auteur Ryan | 2011-02-22
Vous devez vous connecter pour publier un commentaire.
Si votre service WCF déclenche une exception, alors par défaut, il va venir le client en tant que
FaultException
. Vous pouvez configurer votre service pour inclure les détails de l'exception dans les défauts, comme suit:Mais vous ne voulez probablement pas à le faire, ce n'est jamais une bonne idée d'exposer la mise en œuvre interne de détails pour les clients.
Si vous souhaitez distinguer entre les différentes pannes de service, vous pouvez créer votre propre classe, et inscrivez ceci comme un défaut que votre service de jeter. Vous pouvez faire ceci dans le contrat de service de niveau:
La classe que vous utilisez pour vos pannes du contrat n'a pas à mettre en œuvre quoi que ce soit (comme vous le feriez pour obtenir une coutume
Exception
), il sera tout simplement obtenir enveloppé dans un génériqueFaultContract
objet. Ensuite, vous pouvez attrapez dans le code du client comme ceci:OriginalL'auteur Graham Clark
Définir un FaultContract donc, tous les clients peuvent écouter pour que et ne comprennent que les détails de l'exception que vous voulez exposer publiquement.
Lire ceci pour plus d'info: MSDN Docs
OriginalL'auteur Henric