Instancia del Servicio Web

24/11/2004 - 18:41 por Xabi | Informe spam
Hola:

Tengo un servicio web en .NET que consume un objeto COM hecho en VFP. El
caso es que este objeto com tiene unas propiedades internas que se modifican
por codigo. Por ejmplo, el objeto tiene una propiedad "RutaCorrecta", que
puedo poner a true.

Mi problema es que al llamar desde el servicio web al COM, estas propiedades
modificadas vuelven a estar como al principio, como si el com se hubiera
vuelto a crear.

En la aplicacion ASP.NET solo tengo una instancia creada del servicio Web
con lo cual, el acceso al com sería siempre al mismo, no?

Es decir, que yo realice distintas llamadas a metodos del servicio web no
quiere decir q la instancia del COM sea cada vez una nueva?

Os pongo el codigo del servicio web en la parte donde declaro el COM.

public class Service1 : System.Web.Services.WebService

{


object valor=new object();

com.clientesClass ComClien=new com.clientesClass();


public Service1()

{

InitializeComponent();

}



Gracias y saludos



Xabi

Preguntas similare

Leer las respuestas

#1 Hector Bejarano
25/11/2004 - 06:02 | Informe spam
El componente COM una vez que se deja de utilizar, se elimina de memoria (al
menos si tu codigo esta bien). La proxima vez que se carga, viene con los
valores inicializados, es decir, no es persistente ni conserva algo parecido
a un viewstate.

Necesitarias lograr algun mecanismo digamos guardando el estado en una base
de datos, para saber como se encontraba el componente anteriormente, o
guardar los parametros en variables de sesion.

Saludos,
Hector Bejarano. MCP / MCDBA / MCAD

"Xabi" wrote in message
news:co2h4q$e33$
Hola:

Tengo un servicio web en .NET que consume un objeto COM hecho en VFP. El
caso es que este objeto com tiene unas propiedades internas que se
modifican
por codigo. Por ejmplo, el objeto tiene una propiedad "RutaCorrecta", que
puedo poner a true.

Mi problema es que al llamar desde el servicio web al COM, estas
propiedades
modificadas vuelven a estar como al principio, como si el com se hubiera
vuelto a crear.

En la aplicacion ASP.NET solo tengo una instancia creada del servicio Web
con lo cual, el acceso al com sería siempre al mismo, no?

Es decir, que yo realice distintas llamadas a metodos del servicio web no
quiere decir q la instancia del COM sea cada vez una nueva?

Os pongo el codigo del servicio web en la parte donde declaro el COM.

public class Service1 : System.Web.Services.WebService

{


object valor=new object();

com.clientesClass ComClien=new com.clientesClass();


public Service1()

{

InitializeComponent();

}



Gracias y saludos



Xabi


Respuesta Responder a este mensaje
#2 CESAR DE LA TORRE [Microsoft MVP]
28/11/2004 - 17:38 | Informe spam
El problema real que tienes es que los XML-Web-Services son por definición
'state-less', es decir, 'sin-estados'. Aunque llamen a un objeto COM que
tenga estados en memoria, cada vez que se llama a un método-Web (Web-Method)
del WebService, es como si se instanciara un nuevo objeto del WebService en
el servidor.
Así que, por lo tanto, la única forma de manejar estados en un WebService es
guardarlos de forma persistente en Bases de Datos u otro sistema (sesiones
ASP.NET, etc.), pero el WebService en sí mismo deberá programarse teniendo
en cuenta que su modelo de programación es 'state-less'.

César de la Torre
[Microsoft MVP - .NET XML WebServices]
[MCSE] [MCT]

Renacimiento
Microsoft GOLD Certified Partner
www.renacimiento.com



"Hector Bejarano" wrote in message
news:%
El componente COM una vez que se deja de utilizar, se elimina de memoria
(al menos si tu codigo esta bien). La proxima vez que se carga, viene con
los valores inicializados, es decir, no es persistente ni conserva algo
parecido a un viewstate.

Necesitarias lograr algun mecanismo digamos guardando el estado en una
base de datos, para saber como se encontraba el componente anteriormente,
o guardar los parametros en variables de sesion.

Saludos,
Hector Bejarano. MCP / MCDBA / MCAD

"Xabi" wrote in message
news:co2h4q$e33$
Hola:

Tengo un servicio web en .NET que consume un objeto COM hecho en VFP. El
caso es que este objeto com tiene unas propiedades internas que se
modifican
por codigo. Por ejmplo, el objeto tiene una propiedad "RutaCorrecta", que
puedo poner a true.

Mi problema es que al llamar desde el servicio web al COM, estas
propiedades
modificadas vuelven a estar como al principio, como si el com se hubiera
vuelto a crear.

En la aplicacion ASP.NET solo tengo una instancia creada del servicio Web
con lo cual, el acceso al com sería siempre al mismo, no?

Es decir, que yo realice distintas llamadas a metodos del servicio web no
quiere decir q la instancia del COM sea cada vez una nueva?

Os pongo el codigo del servicio web en la parte donde declaro el COM.

public class Service1 : System.Web.Services.WebService

{


object valor=new object();

com.clientesClass ComClien=new com.clientesClass();


public Service1()

{

InitializeComponent();

}



Gracias y saludos



Xabi






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida