Pregunta

Tengo una aplicación C # de escritorio, y consumir un servicio web sin problemas (WSDL agregadas por "agregar referencias de servicio", por lo que se crea un objeto y llamar a sus funciones).

Ahora, yo quiero utilizar técnicas de votación largas, pero no puedo averiguar cómo hacer esto desde la perspectiva del cliente.

Como configurar el tiempo de espera? ¿Debo usar un hilo dedicado a este? ¿Hay algún ejemplo de una aplicación C # de escritorio? (No he encontrado ninguna)

Gracias, Presa de

¿Fue útil?

Solución

Usted debe ser capaz de configurar el tiempo de espera en el objeto de servicio Web - los detalles dependerán de exactamente qué clase se trata de utilizar, pero mira WebClientProtocol.Timeout para un ejemplo.

Ahora usted podría o bien llamar a esa forma sincrónica de un hilo dedicado, o se puede hacer un asíncrono llamar al servicio web para empezar, que especifica una devolución de llamada a ser ejecutado (probablemente en un subproceso del grupo de subprocesos ) cuando el servicio responde. En ese caso, es posible que usted puede especificar el tiempo de espera en la propia llamada asincrónica - una vez más, que dependerá de qué tipo de clase de servicio web proxy que tenga

.

De esa manera usted no tiene que "residuos" un hilo a la espera de la respuesta - pero es posible que el modelo de programación asincrónica es más difícil de entender que la síncrona. Si sólo tienes una o dos de estas solicitudes en un momento dado, el par adicional de hilos es poco probable que sea un problema. Si usted está esperando las respuestas de 500 servicios diferentes, eso es un asunto diferente y el modelo asíncrono sin duda sería el camino a seguir.

Otros consejos

Para enhebrar cuestiones, véase la respuesta de Jon.

Para el problema de tiempo de espera, aquí está la solución: En vs 2008, cuando agrego una "referencia de servicio" de un WSDL, utilizará WCF por defecto, y no puedo encontrar cómo configurar un valor de tiempo de espera con ella.

Así que, cuando hacen clic derecho en referencias de servicio, tengo que elegir "referencias web" (avanzado / Agregar referencia Web). De esta manera, se utilice sólo los servicios web "normales" y el parámetro de tiempo de espera está disponible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top