Uso WCF per un sistema server client. Quando aggiungo un riferimento di servizio a IService sul server, viene generata una classe proxy ServiceClient. Il mio codice è simile al seguente:Riutilizzare una classe client in WCF dopo l'errore
ServiceClient client = new ServiceClient();
try
{
client.Operation1();
}
catch(Exception ex)
{
// Handle Exception
}
try
{
client.Operation2();
}
catch(Exception ex)
{
// Handle Exception
}
Il problema è che se c'è un'eccezione di comunicazione nella prima chiamata, i cambiamenti di stato del client per Faulted, e non so come riaprirlo per rendere il seconda chiamata. C'è un modo per riaprirlo? o dovrei crearne uno nuovo e sostituire l'istanza (non sembra un modo elegante)?
Il problema è che abbiamo una funzione interna che ottiene un delegato a una funzione su un proxy di servizio e esegue ripetutamente la funzione fino a quando non viene generata alcuna eccezione di comunicazione (la nostra implementazione alla riconnessione automatica). Quindi, in questa soluzione, la funzione creerà un'istanza del proxy per ogni tentativo di esecuzione e dovrà restituire un'istanza aggiornata al chiamante, quindi non terrà un proxy chiuso ... Tipo di brutto: -/ – Andy