He creado un servicio WCF sencilla alojado en IIS y WCF cliente y dado cuenta de que cuando u coger un FaultException del servicio WCF y luego llamada del cliente. Abort() para lanzar la sesión (como dijeron las muestras de Microsoft) no libera la sesión y se cuelga en la 11ma llamada.Abortar() de proxy de cliente WCF no libera la sesión después de la captura FaultException
Aquí es ejemplo:
WCF Servicio:
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
}
public class Service1 : IService1
{
public string GetData(int value)
{
throw new FaultException("Exception is here");
return string.Format("You entered: {0}", value);
}
}
Cliente:
class Program
{
static void Main(string[] args)
{
Service1Client client = null;
for(int i = 0; i < 15; i++)
{
try
{
client = new Service1Client();
client.GetData(100);
}
catch (TimeoutException timeoutEx)
{
Console.WriteLine(timeoutEx);
client.Abort();
}
catch (FaultException faultEx)
{
Console.WriteLine(faultEx);
client.Abort();
}
catch (CommunicationException commEx)
{
Console.WriteLine(commEx);
client.Abort();
}
}
}
}
Pero si sustituye la client.Abort() con client.Close() para atrapar (FaultException) entonces todo funciona como un amuleto y no hay bloqueo después de la 11ma llamada del wcf -servicio de servicio.
Por qué podría ser? ¿Por qué el método Abort() no limpia la sesión después de atrapar FaultException?
lo que acabas de copia pegada desde aquí? http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/f86c056a-4027-453a-a46c-fc223e03589b/ – oleksii