Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

OE-NIK HP Haladó Programozás WCF kivételkezelés. OE-NIK HP Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése.

Hasonló előadás


Az előadások a következő témára: "OE-NIK HP Haladó Programozás WCF kivételkezelés. OE-NIK HP Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése."— Előadás másolata:

1 OE-NIK HP Haladó Programozás WCF kivételkezelés

2 OE-NIK HP Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése

3 V1.0 Kivételkezelés WCF-ben Ha nem kezeljük a hibákat, akkor azok a szerverről a kliensre kerülnek. A kliens futása leáll a következő hibaüzenettel: –CommunicationException - the server did not provide a meaningful reply; this might have been caused due to a contract mismatch, a premature session shutdown or an internal server error. –Egy ilyen után a kommunikációs csatorna nem használható tovább. A kommunikációs csatorna fenntartásához a SOAP-nak megfelelő kivételkezelést kell alkalmazni. Ennek lehetőségei: –returnUnknownExceptionsAsFaults / [ServiceBehavior(IncludeExceptionDetailInFaults=true)]: Minden kivétel becsomagolódik és mint Soap Fault átkerül a kliensre. Érzékeny adatokat is átküld, így csak debugolásnál ajánlott használni –IErrorHandler Minden kivételt elkapunk a szerveren, naplózzuk és esetleg továbbdobjuk Fault Exception- ként –FaultException (ezt használjuk a továbbiakban) 3 OE-NIK HP

4 V1.0 SOAP Fault A SOAP-ban definiált hibával kapcsolatos mezők: –faultcode: kötelező, karakterlánc általában a hibakódok egyikével kezdődik: Server: a hiba a szerverben volt, az üzenet újbóli elküldése sikerre vezethet Client: a hiba az üzenet tartalmában vagy formátumában van, nem érdemes újra próbálkozni –faultstring: olvasható formában írja le a hiba okát –faultactor: tájékoztat, hogy hol következett be a hiba az üzenet útja során A FaultException a WCF-ben definiált típus a Soap Fault létrehozására Bármilyen objektum becsomagolható ezzel Soap Faulttá –new FaultException (myfe,faultReason,faultCode); myfe: becsomagolandó objektum faultReason: további információ küldése a kivételről faultCode: megfelel a SOAP feultcode mezőjének 4 OE-NIK HP

5 V1.0 Kivételkezelési információk a szerződésben A WCF szerződésnek tartalmaznia kell a kivételkezelésre vonatkozó információkat [OperationContract] [FaultContract(typeof(BMIFaultException))] double GetBMI(double weight, double height); –Ha a szerződés nem tartalmazza a FaultContract információt, akkor a kliens mindent unknowfaultexceptions kivételként kap el –A FaultContract információ megjelenik a szolgáltatás wsdl-jében Saját objektumot érdemes átdobni, hogy a megfelelő adatokat adjuk át –A átdobandó objektum osztályát a szerződésben definiáljuk [DataContract] public class BMIFaultException { [DataMember] public string Message{get;set;} } 5 OE-NIK HP

6 V1.0 Kivétel dobása és elkapása A saját objektum létrehozása utána A FaultException generikus osztályból hozunk létre egy példányt Érdemes megadni a faultreasont és a faultcode-ot is –BMIFaultException error = new BMIFaultException(); error.Message = "Zero value passed for height“; throw new FaultException ( error, new FaultReason(ex.StackTrace), new FaultCode("Client.DivideByZero")); A kivétel elkapása a szokásos módon történik –catch (System.ServiceModel.FaultException fex) 6 OE-NIK HP

7 V1.07 OE-NIK HP Feladat Készítsünk webszolgáltatást, amely a testtömegindexet (Body Mass Index) adja meg a súly és a testmagasság alapján –BMI=súly/magasság/magasság (súly kilogramban, magasság méterben) –Dobjon a szerver kivételt, ha a magasság kisebb, mint 0,5 m vagy nagyobb mint 2,5 m. –Dobjuk át a kivételt, amit nullával való osztáskor kapunk. –Minden egyéb kivételnek dobjuk át az üzenetét a kliensnek. –A kliens kezelje az átdobott kivételeket.

8 V1.08 OE-NIK HP Irodalomjegyzék http://www.extremeexperts.com/Net/Articles/ExceptionHandlin gInWCF.aspx http://www.c- sharpcorner.com/uploadfile/ankithakur/exception-handling-in- wcf-using-fault-contract/ http://blogs.msdn.com/b/brajens/archive/2007/04/23/exception -handling-in-wcf-web-service.aspx

9 OE-NIK HP

10


Letölteni ppt "OE-NIK HP Haladó Programozás WCF kivételkezelés. OE-NIK HP Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése."

Hasonló előadás


Google Hirdetések