Sto utilizzando le chiamate asincrone WCF nel mio progetto e sto utilizzando i metodi asincroni lato client. Ho uno scenario come qui sotto -Come generare un'eccezione dalla richiamata in WCF Async utilizzando IAsyncResult
//Code in Business Layer and this method is called from Web layer
private void GetGeneralNews()
{
client.BeginGetGeneralNewsFeed(GeneralNewsCallback, null);
}
//Call Back Method
private static void GeneralNewsCallback(IAsyncResult asyncResult)
{
string response = string.Empty;
try
{
response = client.EndGetGeneralNewsFeed(asyncResult);
}
catch(Exception ex)
{
throw ex; // Here is the problem. It does not throw the exception to the web layer instead it will suppress the error.
}
}
Quindi, come mostrato nel codice sopra frammento di esso non genera l'eccezione dal livello di business a livello web come verrà soppressa qui a livello di business stesso.
Ho controllato alcuni dei blog e dei siti che suggeriscono di andare in asincrono e attendo l'approccio, dato che ho il framework .NET 4.0 e sto vedendo l'opzione "Genera operazioni basate su" disabilitata. Quindi, se ci sono opzioni che usano "IAsyncResult" (inizio & End in client) per favore fammi sapere. Se ci sono altri approcci anche benvenuti.
Gentilmente qualcuno mi aiuti.
Grazie.
controllare il collegamento potrebbe essere utile http://blogs.msdn.com/b/nikos/archive/2011/03/14/how-to-implement-iasyncresult-in-another-way.aspx#comments – reapen
Are stai dicendo che il tuo blocco 'catch' non cattura alcuna eccezione? Se un'eccezione non gestita viene lanciata nel codice lato server, il tuo blocco 'catch' qui sopra dovrebbe prendere una' FaultException' di default. –
Quindi vuoi fare un'eccezione al chiamante quando chiama "GetGeneralNews"? – usr