WCF-Service-Client und IDisposable

14/01/2009 - 17:53 von Markus Springweiler | Report spam
Hallo,

wenn ich eine WCF-Servicereferenz erstellen lasse, erbt die
Servicekommunikationsklasse von ClientBase<TChannel>, welche IDisposable
implementiert.

Also wàre es doch auch logisch, "using" zu verwenden:

using (var svc = new MeinServiceClient())
svc.TuWas();

(denn sonst ist z.B. beim integrierten WCF-Debug-Host nach 10 Verbindungen
das Ender der Fahnenstange erreicht)

Das dumme nur: Wenn "TuWas()" eine Exception wirft, dann sieht man diese
Exception nie, weil sie von einer CommunicationObjectFaultedException
überlagert wird, welche bei beim impliziten Dispose() des "using" ausgelöst
wird: "System.ServiceModel.Channels.ServiceChannel\" kann nicht zur
Kommunikation verwendet werden, weil es sich im Faulted-Status befindet."

Hab' ich einen Denkfehler und mache unbewußt etwas falsch? Was?

/\/\arkus.
 

Lesen sie die antworten

#1 Markus Springweiler
14/01/2009 - 19:06 | Warnen spam
Update,

Das dumme nur: Wenn "TuWas()" eine Exception wirft, dann sieht man diese



Das dumme ist/war, wenn man beliebige Exceptions anstatt einfachen
FaultExceptions oder wohlbekannten (FaultContract) FaultException<T>s wirft
(so man sie selbst wirft).

/\/\arkus.

Ähnliche fragen