Tengo una aplicación Silverlight 3, que el 95% de las veces solicita datos de un Servicio WCF (en la misma aplicación web) y los muestra.Silverlight 3 Servicio WCF `CommunicationException` Servidor devuelto error: NotFound
Esto ocurre con poca frecuencia, por lo general si llego al servicio un montón de veces rápidamente, pero a veces sucede en una única solicitud solitaria.
De vez en cuando, si solicito muchas transacciones en un período corto, obtengo una de dos excepciones, ambas ocurren en el archivo Reference.cs
en el EndMyMethod(System.IAsyncResult result)
.
Existen algunos métodos, y las excepciones se producen en muchos de ellos. El primero, es un TimeoutException()
que entiendo y tiene sentido, el segundo, que no entiendo es el "CommunicationException()
no fue manejado por el código del usuario: el servidor remoto devolvió un error: NotFound".
He puesto try..catch
bloquea tanto cerca de la .MyMethodAsync()
y en el controlador para MyMethodCompleted
tanto en vano, ya que se produce la excepción en el archivo Reference.cs
generado.
Cualquier ayuda es muy apreciada.
actualización
Reference.cs
- generada por "Agregar referencia de servicio"
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);
}
Llamar código - pickedIDs
es una lista de cadenas, y userIDSelecting
es una cadena definido en la parte superior del procedimiento. El controlador de eventos mdc_TogglePIckedCompleted
está vacío en este momento.
MapDataClient mdc = new MyDataClient();
mdc.TogglePickedCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(mdc_TogglePickedCompleted);
foreach (string id in pickedIDs)
{
mdc.TogglePickedAsync(id, userIDSelecting, mdc);
}
Actualización 2
Ésta es la "InnerException" de la CommunicationException: System.Net.WebException: The remote server returned an error: NotFound.
No estoy seguro si esto es más útil, ya que no dio detalles adicionales. Como dije, esto sucede intermitentemente no cada vez que llamo a un método de servicio. También me gustaría señalar que la misma llamada funcionará a veces y no a otras. Estoy empezando a pensar que este problema se debe a que IIS no responde mis llamadas de servicio, ¿no?
Actualización 3
Cuando me refiero a intermiently, quiero decir Truel intrmitent. Esto solo puede ocurrir una sola vez en la sesión de un usuario, y solo puede ocurrir en una de cincuenta sesiones. No es una cita de todo o nada. La aplicación de llamada está alojada en la misma "web" como el Servicio WCF, por lo que no creo que clintaccesspolicy.xml sea el problema, pero podría estar equivocado.
Publique el código para que podamos examinarlo. –
¿El código del 'Reference.cs' generado, mi código de llamada, o ambos? – Nate