2011-07-01 9 views
16

Cada tanto, mi aplicación iPhone entra en un estado donde las solicitudes de red siempre exceden el tiempo de espera, incluso si otras funcionan bien (e incluso pueden acceder a los mismos sitios). Esto no está obviamente correlacionado con los cambios en la disponibilidad de la red, y ocurre tanto en 3G como a través de WiFi. ¿Alguna sugerencia sobre cómo diagnosticar el problema?La aplicación iPhone entra en un estado donde las solicitudes de red nunca se completan

(Fwiw, la aplicación utiliza MonoTouch y HttpWebRequest, pero sospecho que lo que va mal es de menor nivel.)

Nota: El problema persiste a través backgrounding la aplicación y cambiar la configuración de la red; la única solución parece ser matar la aplicación y volver a ejecutarla.

Actualizaciones: He intentado hacer uso de Reachability, pero no tuvo ningún efecto. Reachability.InternetConnectionStatus siempre vuelve ReachableViaWiFiNetwork (o ReachableViaCarrierDataNetwork, dependiendo;.. Del mismo modo IsHostReachable() siempre devuelve verdadero Runtime.StartWWAN() parece hacer ninguna diferencia

+0

Estoy teniendo el mismo problema. Y es intermitente. Estoy usando MKNetworkKit. –

+1

Ojalá pudiera ayudar - No estoy desarrollando para iPhone en este momento. Nunca solucioné esto y resultó más fácil cambiar de trabajo que seguir abusando de mi jefe por eso. : P –

+1

BOOOOOO !!!!!!!! –

Respuesta

6

Hubo un error accesible acerca de esto en https://bugzilla.novell.com/show_bug.cgi?id=555439 y hubo varios intentos de resolverlo A partir del último comentario. en el fallo, se presume fijo pero supongo que si está utilizando MonoTouch 4.0.3 entonces hay algunos casos que no se trabajan alrededor

Básicamente, el problema se refleja en esta otra pregunta: Stackoverflow. iPhone 3G Connection Enabling

Qué hace MonoTouch para probar y Para solucionar este problema, debe llamar a MonoTouch.Runtime.StartWWAN (Uri), que abre una conexión ficticia con el uri utilizando un NSUrlConnection para forzar y reactivar la interfaz de red. Luego, MonoTouch vuelve a usar la API de socket BSD dentro de HttpWebRequest.

+1

Sí, 'StartWWAN()' no parece estar ayudando. Estoy intentando [Miguel] (http://stackoverflow.com/users/16929/miguel-de-icaza) [puerto] (https://github.com/migueldeicaza/monotouch-samples/blame/master/reachability/ alcanzabilidad.cs) de [Accesibilidad] (http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html) para ver si eso hace la diferencia. –

0

Intente configurar la propiedad timeOutInterval del NSURLRequest utilizada para realizar la llamada.

Cuestiones relacionadas