Thursday, August 21, 2008

WCF Global Exception Handlers

in WCF if you handle an exception and convert it to a fault, this can travel thru the wire to the client. however you can not anticipate all exceptions that might be thrown by the service. In this case you may want to create a gloabl Exception handler that deals with any unhandled exception, convert it to a fault and send it through to the client.

The simple way to do this is by creating an attribute (ServiceExceptionHandlerAttribute) class and an error handler class (ServiceExceptionHandler) as follows

----------- the attribute --------------
using System.ServiceModel.Channels;
using System.ServiceModel.Description;


namespace Ayman.ExceptionHandling
{
public class ServiceExceptionHandlerAttribute : Attribute,IServiceBehavior
{
#region IServiceBehavior Members
public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, System.Collections.ObjectModel.Collection endpoints, BindingParameterCollection bindingParameters)
{
}
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
foreach (ChannelDispatcher dispatcher in serviceHostBase.ChannelDispatchers)
{
dispatcher.ErrorHandlers.Add(new ServiceExceptionHandler());
}
}
public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
}
#endregion
}




------------ the error handler -----------------


using System.ServiceModel.Dispatcher;
using System.ServiceModel.Channels;



namespace Ayman.ExceptionHandling
{
public class ServiceExceptionHandler : IErrorHandler
{
public bool HandleError(Exception error)
{

return true;
}
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
ValidationFault validationFault = new ValidationFault();
FaultException fe = new FaultException(validationFault, error.Message);
MessageFault mf = fe.CreateMessageFault();
fault = Message.CreateMessage(version, mf, fe.Action);
}
}
}





And now all you need to do, is to decorate your service with this attribute as follows

using Ayman.ExceptionHandling;
namespace Ayman.MyService
{

[ServiceExceptionHandler]
public class MyService : IMyService
{

}
}

9 comments:

Anonymous said...

[url=http://instr.besdocs.ru][b]Большая база инструкций[/b][/url]
[url=http://instr.besdocs.ru][img]http://instr.besdocs.ru/images/instr.png[/img][/url]
инструкция по эксплуатации кирби в печатном виде
инструкция зарядного устройства жигули
инструкция panasonic kx tca120ru
швейная машинка пмз им калинина инструкция скачать
стиральная машина zanussi aquacycle 800 эксплуатаци
avic zh9md manual
lm le008
seven color crystal boll цена
инструкция olympus lens
ardo inox 51 43 скачать инструкцию
инструкция панасоник 0202
скачать бесплатно инструкцию по эксплуатации гвр 6р
руководство на станок wm multi 03
px3120
инструкция для jk 195f

Anonymous said...

[url=http://instr.besdocs.ru][b]Большая база инструкций[/b][/url]
[url=http://instr.besdocs.ru][img]http://instr.besdocs.ru/images/instr.png[/img][/url]
должностные обязанности старшего инструктора кинолога
elenberg mg 2331
посадова нструкц я свинарки
принципиальня схема sharp lc 32d44ru bk
пду thomson roc 3205 se руководство пользователя на русском языке
panasonic easa phone kx t4301bh инструкция
157qmj инструкция
avidemux инструкция скачать бесплатно
odnoklassnikplus ru
mreader s600 инструкция
компрессор уквш инструкция
инструкция замены шпонки в бензопилах урал
скачать инструкцию дезактив хлор
руководство узи для коров
инструкция telta 214 16

Anonymous said...

[url=http://2kasary.ru/?wegofine=5752468]nissan primera р12 руководство скачать[/url]
[url=http://1440x900.ru/?tefykogi=6846729]nokia n95 китай руководство[/url]
[url=http://2013goroskopnovel.ru/?ticoqefi=2857325]fuji s2500hd инструкция онлайн[/url]
[url=http://1440x900.ru/?tefykogi=3328151]inductiv amplifier описaниe[/url]
[url=http://1narod.ru/?dikifixo=1598440]deluxe e m s инструкция[/url]
[url=http://1mntt.ru/?tenigosa=2329947]dvd lg dr389 инстукция на русском языке[/url]
[url=http://1mntt.ru/?tenigosa=3017348]g5xt midland инструкцыя[/url]
[url=http://1nfobiz.ru/?cebimeby=2353636]daewoo nexia 2008 мануал[/url]
[url=http://2013goroskopnovel.ru/?ticoqefi=403985]anydata adu 310a руководство эксплуатации[/url]
[url=http://1440x900.ru/?tefykogi=3107916]indesit idl 600 инструкция скачать[/url]
[url=http://1mntt.ru/?tenigosa=718766]asus p5ld2 руководство по эксплуатации на русском языке скачать бесплатно[/url]
[url=http://1nfobiz.ru/?cebimeby=936416]bjc 70 инструкция[/url]
[url=http://1nfobiz.ru/?cebimeby=144912]3768 часы касио инструкция на английском[/url]
[url=http://24kemerovo.ru/?nihoqobe=7500022]wings3d инструкция[/url]
[url=http://1nfobiz.ru/?cebimeby=7051854]philips 21pt136b инструкция по эксплуатации[/url]
[url=http://123insaider.ru/?safycyge=7889281]велосипед forward 4410 руководство[/url]
[url=http://1440x900.ru/?tefykogi=244861]adl 8312 питание[/url]
[url=http://123insaider.ru/?safycyge=5959392]site http grommoblog ru инструкция[/url]
[url=http://2kasary.ru/?wegofine=4443846]kx tc1125 инструкция site pro radio ru[/url]
[url=http://2kasary.ru/?wegofine=4771740]lifetec lt8709 инструкция на русском языке[/url]
[url=http://1narod.ru/?dikifixo=1317862]cheriff 7000hhu[/url]
[url=http://2013gorockopgreat.ru/?menawoke=6102816]бесплатно скачать инструкцию на iphone a1288 fcc id bcga[/url]
[url=http://123insaider.ru/?safycyge=7931296]видео инструкция к вязальной машине тойота[/url]
[url=http://2013gorockopgreat.ru/?menawoke=2748506]lexus rx300 pdf[/url]
[url=http://23vklad.ru/?powifofi=6008272]olympus fe 190 руководство скачать[/url]
[url=http://24kemerovo.ru/?nihoqobe=6648430]syncrony digital инструкция по применению[/url]
[url=http://2kasary.ru/?wegofine=2895950]fantom руководство пользователя схема подключения[/url]
[url=http://123insaider.ru/?safycyge=7670803]бесплатная инструкция по эксплуатации rowenta es 050[/url]
[url=http://1nfobiz.ru/?cebimeby=5230860]ipone 4g инструкция бесплатно[/url]
[url=http://1mntt.ru/?tenigosa=7853608]samsung gt s7070 руководство пользователя на русском[/url]
[url=http://24kemerovo.ru/?nihoqobe=7028194]user guide tp link 841 тв[/url]
[url=http://1mntt.ru/?tenigosa=3166783]giordon t686f info[/url]
[url=http://24kemerovo.ru/?nihoqobe=5845747]rus инструкция verifone vx670[/url]
[url=http://2kasary.ru/?wegofine=3489704]handbrake[/url]
[url=http://23vklad.ru/?powifofi=1098856]arris cm550b мануал[/url]
[url=http://24kemerovo.ru/?nihoqobe=7082857]velleman hps 40 инструкция[/url]
[url=http://1nfobiz.ru/?cebimeby=7573284]rt255 инструкция[/url]
[url=http://123insaider.ru/?safycyge=4163951]mac 2210 c[/url]
[url=http://24kemerovo.ru/?nihoqobe=4116670]kipor kge 7000 tc техническое описание[/url]
[url=http://24kemerovo.ru/?nihoqobe=6547735]star line njqtr53b[/url]
[url=http://1440x900.ru/?tefykogi=2890272]independence 1775 инструкция[/url]
[url=http://2kasary.ru/?wegofine=5666802]nissan primera p11 инструкция компьютера видео[/url]
[url=http://2013gorockopgreat.ru/?menawoke=3374576]omaks wj50 инструкция[/url]
[url=http://1440x900.ru/?tefykogi=5007119]kr14u1t руководство[/url]
[url=http://2013gorockopgreat.ru/?menawoke=1173151]crunch 2138 комментарии[/url]
[url=http://2kasary.ru/?wegofine=8721238]tp link инструкция русском[/url]
[url=http://23vklad.ru/?powifofi=6695752]panasonic tg 4321 ru[/url]
[url=http://1narod.ru/?dikifixo=7059988]бесплатная инструкция камаз 740[/url]
[url=http://1mntt.ru/?tenigosa=1514847]canons95 инструкция по эксплуатации на русском языке[/url]
[url=http://24kemerovo.ru/?nihoqobe=7597840]winrar для nokia 5800 инструкция[/url]

Anonymous said...

[url=http://www.busco-casa.ru/region200_info.html]недвижимость испании на побережье[/url]
[url=http://www.busco-casa.ru/region600_info.html]недвижимость на коста бланка испания[/url]


Любые отношения с недвижимостью, будь то покупка, продажа или аренда – дело ответственное, подходить к которому обязательно надо со всей ответственностью, взвешивая все за и против и учитывая риски и возможные непредвиденные ситуации. А если дело касается недвижимости в заморских странах, то тут уж обязательно просто необходимо быть уверенным во всех мелочах.
Наш ресурс ответит на все ваши заковыристые вопросы, которые имеют отношение к таким вопросам, как сделки с недвижимостью в Испании. Наша команда профессионалов с радостью поделится с вами тонкостями и важными нюансами оформления сделок с недвижимостью. Наши консультанты собрали здесь отличную базу агентств, которые разбросаны по всему побережью этой Южной страны для того, чтобы вы сделали свой правильный и осознанный выбор. На сайте Busco-casa.ru вы обязательно увидите большое количество незаменимой информации: от профессиональных юридических терминов, которые могут применяться при оформлении сделок с недвижимостью до анализа рынка по состоянию на текущий месяц. К тому же, за свои услуги мы совершенно ничего не требуем! Мы работаем абсолютно бесплатно для наших клиентов, для вашего спокойного и обеспеченного будущего!


[url=http://www.busco-casa.ru/region300_info.html]недвижимости коста дорада[/url]
[url=http://www.busco-casa.ru/region400_info.html]валенсия испания недвижимость[/url]

Anonymous said...

Всякий автолюбитель любит своего железного друга и по-всякому старается улучшить свой автомобиль так, чтобы он получился полностью индивидуальным и максимально подходил своему хозяину. Сотрудники guru-tuning.com смогут помочь найти самый подходящий комплект для данной модели авто. Наши сотрудники смогут предоставить детальную информацию о товарах, объяснить, в чем заключаются отличия между всеми производителями, к каким авто они подходят, а ещё о том, как можно инсталлировать и эксплуатировать эти детали.
[url=http://guru-tuning.com/category/38.html?model=Range Rover (2013- )]тюнинг range rover 2013[/url]
[url=http://guru-tuning.com/goods/diski-hamann-bmw-5-series-f10_f11-touring.html]диски для бмв 5 f10 hamman[/url]

С помощью этих деталей можно сделать автомобиль своеобразным и индивидуальным за сравнительно небольшие деньги.
[url=http://guru-tuning.com/goods/GSC-Wide-Body-Kit-Mercedes-ML-(W-166).html]tuning mercedes ml gsc[/url]

Тюнинг автомобилей – это формирование стильного и индивидуального проекта для всех, кто желает иметь авто красивее и привлекательней, чем у всех. Мы можем взять на себя решение данного вопроса. Мы гордимся тем, что представляем своим заказчикам исключительно качественные услуги, которые начинаются с консультаций по выбору направления автомобильного тюнинга и предоставления оперативной информации о любых новинках в мире авто до профессионального техобслуживания и кузовного ремонта авто всех марок, как российских, так и зарубежных.
[url=http://guru-tuning.com/goods/vihlopnaya-sistema-hamann-porsche-cayenne-957.html]выпускная система порше кайен[/url]

Anonymous said...

Всякий автомобилист ценит своего железного коня и всячески пытается улучшить свое авто так, чтобы он стал совсем индивидуальным и максимально подходил своему хозяину. Сотрудники guru-tuning.com способны помочь найти самый подходящий комплект для нужной модели авто. Менеджеры смогут предоставить детальную информацию о товарах, объяснить, в чем различие между всеми фирмами, к каким автомобилям они подходят, а также о том, как надо инсталлировать и эксплуатировать такие детали.
[url=http://guru-tuning.com/goods/vihlopnaya-sistema-hamann-range-rover-sport-o.html]купить черные буквы range rover[/url]
[url=http://guru-tuning.com/goods/diski-porsche-panamera-b.html]резина с дисками на панамеру[/url]

С помощью подобных деталей можно сделать автомобиль эксклюзивным и стильным за относительно небольшие деньги.
[url=http://guru-tuning.com/category/41.html]тюнинг салона порше панамера[/url]

Тюнинг автомобилей – это формирование совершенного и эксклюзивного проекта для всех, кто хочет иметь автомобиль красивее и привлекательней, чем у других. Мы готовы взять на свои плечи решение данного вопроса. Мы рады тому, что можем предложить своим заказчикам только качественные услуги, которые начинаются с консультаций по выбору направленности автотюнинга и предоставления оперативной информации обо всех новинках в этой области до профессионального ТО и кузовного ремонта автомобилей всех марок, как отечественных, так и иностранных.
[url=http://guru-tuning.com/goods/190.html]фото порше панамера[/url]

neethays said...

jetez un œil à ce site Web sacs à dos de créateurs de répliques VOTREURL.com dolabuy ysl ici dolabuy hermes

sheyne said...

n0v18t1b54 f8o52s0y15 m0w61m6s85 z3u15t1s26 y1c45h5j92 z4q42a7w05

Anonymous said...

l4j05n8r72 k3m55j1m17 z2m95e5m59 o7h17g1r69 u2i25e3l52 x2g76w5x23