WcfRouter Exceptions an den Client weiter geben

23/06/2010 - 13:30 von jens d | Report spam
Hallo,

ich habe mit Michele Leroux Bustamantes Hilfe einen Router fabriziert.
Jetzt möchte ich von diesem Router aber Eine Fehlermeldung zurück an den
Client geben, wenn z.B. kein Service sich angemeldet hat bzw. ein
anderer Fehler im Router auftritt.

Leider funktioniert es so nicht:

public void ProcessMessage(Message requestMessage)
{
lock (this.m_duplexSessionLock)
{
Binding binding = null;
Uri addressUri = null;
if (this.m_duplexSession == null)
{
GetServiceEndpoint(requestMessage, out binding, out addressUri);
if (addressUri == null)
{
throw new FaultException<Exception>(new Exception("Kein
Service da"), new FaultReason("Alle wech"));
//return;
}
IDuplexRouterCallback callback =
OperationContext.Current.GetCallbackChannel<IDuplexRouterCallback>();

DuplexChannelFactory<IDuplexRouterService> factory = new
DuplexChannelFactory<IDuplexRouterService>(new InstanceContext(null, new
DuplexRouterCallback(callback)), binding.Name+"_config");

AddressHeaderCollection x = new
AddressHeaderCollection();
factory.Endpoint.Address = new
EndpointAddress(addressUri, factory.Endpoint.Address.Identity, x);
factory.Endpoint.Behaviors.Add(new
MustUnderstandBehavior(false));
this.m_duplexSession = factory.CreateChannel();

}
}

try
{
this.m_duplexSession.ProcessMessage(requestMessage);
this.m_duplexSession = null;



Ich hoffe, man kann das lesen..

Wie kann ich dem Client mitteilen, dass die Verbindung scheitern wird,
ohne lange Timeouts zu provozieren?

LG und vielen Dank für die Hilfe
Jens
 

Lesen sie die antworten

#1 jens d
30/06/2010 - 11:24 | Warnen spam
Niemand? Ich habe noch immer keinen Weg gefunden =(



Am 23.06.2010 13:30, schrieb jens d:
Hallo,

ich habe mit Michele Leroux Bustamantes Hilfe einen Router fabriziert.
Jetzt möchte ich von diesem Router aber Eine Fehlermeldung zurück an den
Client geben, wenn z.B. kein Service sich angemeldet hat bzw. ein
anderer Fehler im Router auftritt.

Leider funktioniert es so nicht:

public void ProcessMessage(Message requestMessage)
{
lock (this.m_duplexSessionLock)
{
Binding binding = null;
Uri addressUri = null;
if (this.m_duplexSession == null)
{
GetServiceEndpoint(requestMessage, out binding, out addressUri);
if (addressUri == null)
{
throw new FaultException<Exception>(new Exception("Kein Service da"),
new FaultReason("Alle wech"));
//return;
}
IDuplexRouterCallback callback > OperationContext.Current.GetCallbackChannel<IDuplexRouterCallback>();

DuplexChannelFactory<IDuplexRouterService> factory = new
DuplexChannelFactory<IDuplexRouterService>(new InstanceContext(null, new
DuplexRouterCallback(callback)), binding.Name+"_config");

AddressHeaderCollection x = new AddressHeaderCollection();
factory.Endpoint.Address = new EndpointAddress(addressUri,
factory.Endpoint.Address.Identity, x);
factory.Endpoint.Behaviors.Add(new MustUnderstandBehavior(false));
this.m_duplexSession = factory.CreateChannel();

}
}

try
{
this.m_duplexSession.ProcessMessage(requestMessage);
this.m_duplexSession = null;



Ich hoffe, man kann das lesen..

Wie kann ich dem Client mitteilen, dass die Verbindung scheitern wird,
ohne lange Timeouts zu provozieren?

LG und vielen Dank für die Hilfe
Jens

Ähnliche fragen