The normal behavior is as follows:
Application A calls application B, and application B returns an answer.

IAsyncResult call = proxyB.BeginOperation(data, null, null);
answer = proxyB.EndOperation(call);

Now to the special case: Application B is killed, crashed, disconnected or
somehow unable to respond.

What happens then when A calls B?

Let’s say the call is made through an http- binding. Then EndOperation
would throw an exception (that can be caught and handled in an appropriate
way in application A).

Now what if the binding is a NetNamedPipeBinding?
Then BeginOperation throws an exception. This means that A knew that B was
down so it didn’t even bother to try calling B. (It also means that the
code that handles an exception from EndOperation doesn’t solve anything...)

So, when Indigo knows in advance that B is down, there must be a way that
my application code can detect it as well.

And it is: If the connection between A and B is a callback channel, I can
do the following:
OperationContext.Current.Channel.Closing += new EventHandler
(OnConnectionClosing);
and thereby detect when the connection is closing!

What I need to solve my problem is a way to detect that the connection is
Closing also when it is not a callback channel. Can anyone help?

===================================
This list is hosted by DevelopMentor®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to