Possiedo un'applicazione Silverlight 3, che il 95% delle volte richiede con successo i dati da un servizio WCF (nella stessa webapp) e visualizzandoli.Silverlight 3 Servizio WCF `CommunicationException` Errore restituito dal server: NotFound
Questo accade raramente, di solito se colpisco il servizio un po 'di volte rapidamente, ma a volte capita su una singola richiesta.
Ogni tanto, se richiedo un sacco di transazioni in un breve periodo, ottengo una delle due eccezioni, entrambe si verificano nel file Reference.cs
nello EndMyMethod(System.IAsyncResult result)
.
Esistono alcuni metodi e le eccezioni si verificano su qualsiasi numero. Il primo è un TimeoutException()
che ho capito e ha senso, il secondo, che non riesco a ottenere è il "CommunicationException()
non gestito dal codice utente: Il server remoto ha restituito un errore: NotFound."
ho messo try..catch
blocchi sia arround il .MyMethodAsync()
e nel gestore per MyMethodCompleted
sia senza alcun risultato, come si verifica l'eccezione nel Reference.cs
file generato.
Qualsiasi aiuto è molto apprezzato.
aggiornamento
Reference.cs
- generata da "Add Service Reference"
public System.IAsyncResult BeginTogglePicked(string ID, string toggle, System.AsyncCallback callback, object asyncState)
{
object[] _args = new object[2];
_args[0] = ID;
_args[1] = toggle;
System.IAsyncResult _result = base.BeginInvoke("TogglePicked", _args, callback, asyncState);
return _result;
}
public void EndTogglePicked(System.IAsyncResult result)
{
object[] _args = new object[0];
// This is the line where the Exception is Thrown
base.EndInvoke("TogglePicked", _args, result);
}
Calling Codice-pickedIDs
è una lista di stringhe, e userIDSelecting
è una stringa definito nella parte superiore della procedura. L'Event Handler mdc_TogglePIckedCompleted
è vuoto al momento.
MapDataClient mdc = new MyDataClient();
mdc.TogglePickedCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(mdc_TogglePickedCompleted);
foreach (string id in pickedIDs)
{
mdc.TogglePickedAsync(id, userIDSelecting, mdc);
}
Update 2
Questo è il "InnerException" dalla CommunicationException: System.Net.WebException: The remote server returned an error: NotFound.
Non so se questo è più utile, dal momento che non fornisce alcun dettaglio in più. Come ho detto, questo accade in modo intermittente non ogni volta che chiamo un metodo di servizio. Vorrei anche sottolineare che la stessa chiamata funzionerà a volte e non altri, sto iniziando a pensare che questo problema sia dovuto al fatto che IIS non risponde alle mie chiamate di servizio, pensieri?
Aggiornamento 3
Quando dico intermiently, intendo truel intrmitent. Questo può verificarsi solo una volta nella sessione di un utente e può avvenire solo in una delle cinquanta sessioni. La sua non è una casa o tutto o niente. L'applicazione chiamante è ospitata all'interno dello stesso "sito web" del servizio WCF, quindi non credo che il problema sia un clintaccesspolicy.xml, ma potrei sbagliarmi.
Invia il codice in modo che possiamo esaminarlo. –
Il codice dal 'Reference.cs' generato, il mio codice chiamante o entrambi? – Nate