Excepción no controlada por el usuario informada en VS Debugger cuando se usa Polly

Estoy usando Polly para detectar una excepción al llamar al servicio de Geocoder Pittney Bowes. Estoy usando una biblioteca g1client que arroja una MessageProcessingException. He incluido la llamada en una política de red de Polly para volver a intentar la llamada hasta 3 veces si se lanza esta excepción, pero Visual Studio insiste en que la excepción es "no controlada por el usuario". ¿Qué necesito modificar para hacer que se maneje esta excepción? ? Estoy usando Visual Studio 2017 Community Edition y C # 4.6.1.

try
{
    var networkPolicy = Policy
                              .Handle<MessageProcessingException>()
                              .Or<Exception>()
                              .WaitAndRetry(
                                   3,
                                   retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
                                   (exception, timeSpan, context) =>
                                   {
                                       System.Diagnostics.Debug.WriteLine("Exception being retried" + exception);
                                   });
    geocoderResponse = networkPolicy.Execute(() => geocoderService.Process(geocoderRequest));
}
catch (MessageProcessingException ex)
{
    log.Error("MessageProcessingException calling the Geocoder service", ex);
    throw ex;
}
catch (Exception ex)
{
    log.Error("Exception calling the Geocoder service", ex);
    throw ex;
}

El mensaje de error es:

g1client.MessageProcessingException occurred
  HResult=0x80131500
  Message=Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. Client timeout
  Source=g1client
  StackTrace:
   at g1client.UTF8Serializer.DeserializeHashtable(NetworkStream networkStream)
   at g1client.UTF8Serializer.GetMessage(NetworkStream networkStream)
   at g1client.SocketGatewayConnection.ProcessBytes(Byte[] bytesIn)
   at g1client.SocketGatewayConnection.Process(Message message)
   at g1client.RemoteService.Process(Message message)
   at Midas.Core.PBGeocoder.Geocoder.<>c__DisplayClass27_0.<Bulk2PassGeocode>b__2() in E:\Source Code\GitHub\Midas.Core\Midas.Core.PBGeocoder\Geocoder.cs:line 321
   at Polly.Policy.<>c__DisplayClass75_0`1.<Execute>b__0(CancellationToken ct)
   at Polly.Policy.<>c__DisplayClass27_0`1.<Execute>b__0(CancellationToken ct)
   at Polly.RetrySyntax.<>c__DisplayClass11_0.<WaitAndRetry>b__1(CancellationToken ct)
   at Polly.Retry.RetryEngine.Implementation[TResult](Func`2 action, CancellationToken cancellationToken, IEnumerable`1 shouldRetryExceptionPredicates, IEnumerable`1 shouldRetryResultPredicates, Func`1 policyStateFactory)

También me gustaría rastrear por qué recibo este error, por lo que cualquier depuración de ayuda también sería genial. Solo lo recibo la primera vez que llamo al servicio con una solicitud grande. En este caso, estaba enviando 1000 direcciones para ser procesadas. La próxima ejecución de la solicitud se manejará en menos de un segundo, pero la primera vez no funciona.

Respuestas a la pregunta(1)

Su respuesta a la pregunta