Warum ruft Silverlight AfterReceiveReply nicht für das Verhalten meines benutzerdefinierten ServiceModel.ClientBaseTChannel-Kanals auf?

8

Ich habe eine Servicereferenz für eine API eines Drittanbieters. Ich verwende eine benutzerdefinierte ChannelFactory-Klasse, um Channels ([WCF] vom Typ System.ServiceModel.ClientBase) zu dieser API zu erstellen.

Ich habe eine benutzerdefinierte Verhaltensklasse (wie unten definiert), die ich an diesen Channel-Endpunkt anschließe, um alle Ausnahmen zu behandeln, die ich von der API erhalten habe. In meinem normalen .NET-Code funktioniert das gut. In Silverlight wird die AfterReceiveReply-Methode jedoch nur aufgerufen, wenn kein Fehler aufgetreten ist.

In diesem Fall gibt es bei der aufrufenden Methode einen Fehler, wenn Sie versuchen, auf das Ergebnis von eventArgs: 'eventArgs.Result' threw an exception of type 'System.Reflection.TargetInvocationException' zu verweisen.

Die innere Ausnahme hat: InnerException = {System.ServiceModel.CommunicationException: The remote server returned an error: NotFound.

Und ich sehe den obigen Fehler unabhängig vom REAL Fehler. In Fiddler kann ich den wirklichen Fehler sehen, der zurückkommt. Es gibt nur etwas an der Kanalverarbeitung, die es versteckt. Im Folgenden finden Sie ein Beispiel für die SOAP-Antwort mit dem tatsächlichen Fehler. (Einige Werte wurden entfernt.)

%Vor%

Ich bin mir sicher, dass ich noch nicht genug Informationen dazu geliefert habe, aber ich weiß nicht, was alles relevant ist. Fragen Sie nach weiteren Informationen in den Kommentaren.

Wie kann ich das Problem beheben? Derselbe Code funktioniert in .NET, aber Silverlight kann damit nicht gut umgehen.

Einige relevante Code ist unten.

Verhalten:

%Vor%

Kanal-Erstellung :

%Vor%     
EndangeredMassa 05.02.2011, 02:14
quelle

1 Antwort

5

Weiß nicht, ob das etwas hilft / benutzt.

Standardmäßig führt silverlight HTTP-Requests (einschließlich SOAP / REST) ​​über den Browser aus. Bei diesen Aufrufen werden alle HTTP / HTTPS-Anfragen vom silverlight-client-Netzwerkstack bearbeitet.

%Vor%     
CaptainPlanet 09.02.2011, 17:34
quelle

Tags und Links