Pregunta

Se llama a mi constructor de servicios web cada vez que llamo a un método web. Esto está causando algunos problemas con algunas funcionalidades nuevas que estoy agregando y no puedo entender qué estoy haciendo mal para causar esto. El único lugar donde estoy renovando el servicio web es en el Application_Start de global.asax.cs, pero si elimino el código para new el servicio web, todavía llama al constructor cada vez que llamo a un método web.

He probado esto navegando hasta el archivo .asmx y llamando a los métodos web de esa manera y también he creado una aplicación de consola de prueba que tiene una referencia al servicio web y llamaré a los métodos de esa manera. Ambos dan los mismos resultados.

Estoy usando c # en ASP.NET 1.1. ¿Algunas ideas?

Editar:
Estoy tratando de crear un hilo de latidos que sondee un servicio de Windows. Estoy intentando guardar el resultado en una tabla hash (múltiples hilos que sondean múltiples servicios). He cambiado el método web (como solía sondear el servicio de Windows) para obtener los resultados de la tabla hash. Estamos tratando de aumentar la velocidad de esta llamada al método web.

¿Fue útil?

Solución

Cada vez que llama a un método web, se crea una nueva instancia del servicio web; este es el comportamiento previsto. Los servicios web no tienen estado, lo que significa que una instancia del servicio no se mantiene viva entre las llamadas a métodos web y, por lo tanto, no puede almacenar ningún estado en los miembros (campos, propiedades) del servicio web.

Si desea guardar algunos valores / estados entre llamadas a métodos web, debe usar la sesión ASP.NET o una base de datos para ese propósito.

Vea esta pregunta para más detalles: ¿Se supone que esto funciona de esta manera?

Otros consejos

Err ... esto es algo así por diseño, me temo. ¿Puede describir los problemas que está teniendo y lo que está tratando de lograr? Creo que necesita refactorizar un poco su diseño aquí.

También puede cambiar a WCF que admite servicios con estado

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