Ejecutar un proceso luego de iniciado un servicio web

27/06/2007 - 00:18 por egcito | Informe spam
Estimados,

Necesitaríamos saber si es posible ejecutar un proceso automáticamente luego
de iniciado un servicio web concreto. Más específicamente necesitamos
ejecutar un método de un servicio web ni bien inicia (o levanta) el mismo
pero en forma automática. La idea no es usar monitores o cosas similares.
¿Es esto posible?

Espero se haya entendio.

Desde ya muchas gracias.

Saludos

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
27/06/2007 - 08:00 | Informe spam
"egcito" wrote in message
news:
Necesitaríamos saber si es posible ejecutar un proceso automáticamente
luego
de iniciado un servicio web concreto. Más específicamente necesitamos
ejecutar un método de un servicio web ni bien inicia (o levanta) el mismo
pero en forma automática. La idea no es usar monitores o cosas similares.
¿Es esto posible?

Espero se haya entendio.



No, no se ha entendido mucho. ¿Qué entiendes por "iniciar" un servicio
web? Los servicios web no guardan estado. Cada vez que llega una petición
http se crea la clase del servicio, se ejecuta el método del servicio, y se
destruye la clase, y permanece en ese estado hasta que llega otra petición.
Así pues, no hay un estado que sea "iniciado". Si por "iniciado" entiendes
ese breve lapso de tiempo durante el cual está creada la clase, puedes
lanzar el proceso que deseas en el constructor de la clase. O en el inicio
del método que has llamado, que tiene el mismo tiempo de vida que la propia
clase que lo contiene. En cambio, si por "iniciado" entiendes "la primera
vez que alguno de los clientes lanza alguno de los métodos del servicio",
entonces puedes usar el Application_Start del Global.asax.
Respuesta Responder a este mensaje
#2 egcito
27/06/2007 - 18:08 | Informe spam
Alberto, gracias por responder. La forma correcta de preguntar sería,
¿existe la posiblidad de ejecutar un proceso inmediatamente después de
haberse iniciado el el sitio web que contiene a un web service en
particular?. Es decir antes de que se efectue la primer llamada al WS en
cuestión. La idea es que ese proceso que se dispare ejecute un requerimiento
web automático al servicio web (antes de que alguien pueda invocarlo). La
razón por la cual necesitamos esto es porque la primera petición que realiza
el usuario al servicio web tarda un tiempo prudencial (solamente la primera)
y queríamos que esto se hiciera automáticamente.

Muchas gracias.

Saludos.

"Alberto Poblacion" wrote:

"egcito" wrote in message
news:
> Necesitaríamos saber si es posible ejecutar un proceso automáticamente
> luego
> de iniciado un servicio web concreto. Más específicamente necesitamos
> ejecutar un método de un servicio web ni bien inicia (o levanta) el mismo
> pero en forma automática. La idea no es usar monitores o cosas similares.
> ¿Es esto posible?
>
> Espero se haya entendio.

No, no se ha entendido mucho. ¿Qué entiendes por "iniciar" un servicio
web? Los servicios web no guardan estado. Cada vez que llega una petición
http se crea la clase del servicio, se ejecuta el método del servicio, y se
destruye la clase, y permanece en ese estado hasta que llega otra petición.
Así pues, no hay un estado que sea "iniciado". Si por "iniciado" entiendes
ese breve lapso de tiempo durante el cual está creada la clase, puedes
lanzar el proceso que deseas en el constructor de la clase. O en el inicio
del método que has llamado, que tiene el mismo tiempo de vida que la propia
clase que lo contiene. En cambio, si por "iniciado" entiendes "la primera
vez que alguno de los clientes lanza alguno de los métodos del servicio",
entonces puedes usar el Application_Start del Global.asax.



Respuesta Responder a este mensaje
#3 Alberto Poblacion
27/06/2007 - 23:13 | Informe spam
"egcito" wrote in message
news:
[...] La forma correcta de preguntar sería,
¿existe la posiblidad de ejecutar un proceso inmediatamente después de
haberse iniciado el el sitio web que contiene a un web service en
particular?.
Es decir antes de que se efectue la primer llamada al WS en
cuestión.



Bien, el problema es que el sitio web no se "inicia". Lo que se inicia
es el Internet Information Server, el cual una vez iniciado se pone "a la
escucha" esperando que lleguen peticiones http, y cuando llega una la
atiende. Si la petición que llega resulta ser para una aplicación de asp.net
(incluido un web service), entonces se inicia el "worker process" de aspnet
y se atiende la petición. Pero antes de que llegue esa primera petición, no
hay nada "iniciado" salvo el propio IIS.

La idea es que ese proceso que se dispare ejecute un requerimiento
web automático al servicio web (antes de que alguien pueda invocarlo). La
razón por la cual necesitamos esto es porque la primera petición que
realiza
el usuario al servicio web tarda un tiempo prudencial (solamente la
primera)
y queríamos que esto se hiciera automáticamente.



En resumidas cuentas, lo que desearías hacer es enviar una petición al
servicio web justo después de iniciarse el IIS. Por desgracia, que yo sepa,
el IIS al arrancar no "dispara" nada que puedas interceptar. Salvo que
alguien tenga alguna idea mejor, me temo que la única solución es hacer
algún tipo de "polling", por ejemplo, con un servicio que reintente
repetidamente comunicarse con el IIS hasta conseguirlo. Cosa que, si no me
equivoco, es precisamente lo que no querías hacer desde un principio. Pero
no veo ninguna otra alternativa.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida