Codificando .Net

Aprendizado, companherismo, ensino e aperfeiçoamento constante

WCF - Windows Communication Foundation - Log e Exceptions (ErrorHandler - Parte 1)

Fala pessoal, hoje vou dar início à uma série de posts que mostrará como criar uma biblioteca de Conversão de Exceptions para Fault Exceptions, e estratégia de log de erros em um serviço WCF.

Está tarefa pode ser realizada de várias maneiras diferentes, hoje vou apresentar uma delas utilizando recursos do próprio Framework 4.0, utilizando o Assembly: "C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.ServiceModel.dll".
Onde dentro deste vamos utilizar como foco deste post o seguinte contrato "System.ServiceModel.Dispatcher.IErrorHandler."

Estou iniciando por está, não por ser a melhor forma de se realizar essas duas coisas, na minha opinião não existe a melhor forma de se fazer, e sim a melhor forma de você adequar a implementação ao seu projeto.

1) Vamos precisar de um VS2010 trabalhando com Framework 4.0

2) No meu caso fiz a escolha do Log4Net para minha estratégia de log. (Não obrigatório)

Vamos lá, mãos a obra:

Primeiro criar um projeto a parte de seu WCF para poder ser aproveitado em vários serviços, o meu chamei de Lcj.Library.ErrorHandler

Dentro do projeto Lcj.Library.ErrorHandler vamos criar:

1) Um FaultContract (assunto discutido no post DataContracts) que no meu caso vou chamar de "ServiceFault" que deverá implentar a interface "IFaultDetail", conforme print abaixo:

Agora que já temos nosso FaultContract, vamos criar a classe que será responsável por converter todos exceptions em nosso FaultContract. A minha chamei de "ServiceFaultConverter" que deverá implementar a interface "IExceptionToFaultConverter", conforme print abaixo:

2) Uma classe (Dei o nome de "ErrorHandler") que implemente a interface "IErrorHandler", e também herde da classe "BehaviorExtensionElement". Como no exemplo abaixo:

Podemos perceber observando a imagem acima, que temos a primeira propriedade do tipo "ErrorHandlerBehaviourAttribute" que não existe ainda em nosso projeto, por enquanto deixaremos assim.

Veja detalhadamente a estrutura da classe ErrorHandler:

Continuação...

Exibições: 192

Tags: Error, Error Handler, Error Handling, Exceptions, Extensibility, Fault Contract, Fault Exceptions, Log, WCF, Windows Communication Foundation, Mais...boas praticas, error handling, example

Comentar

Você precisa ser um membro de Codificando .Net para adicionar comentários!

Entrar em Codificando .Net

Patrocínios

 

 

Comunidade Daruma 

Editora O'Reilly 

 

© 2013   Criado por Alexandre Tarifa.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço