WebService Session state
Tengo un problema algo complicado para mi y quisiera saber si me puedes ayudar con el:
Yo quiero quitarme de arriba arrastrar por las estaciones de trabajo donde instalare la aplicación el Cliente de Oracle.
Para ello mi aplicación utilizara todo el acceso al servidor oracle desde un servicio web por lo que solo tendre un solo
cliente oracle en el servidor donde se encuentra el webservice.
Manteniendo la filosofia de trabajo de una aplicación normal que usa un sgdb, es decir, abro mi aplicación y con ella la conexión con oracle y esta se queda abierta hasta tanto este abierta mi aplicación, el servicio debe de ser capaz de simular esto, ya me conecto a oracle sin ningun tipo de problemas y realizo consultas, storeproc y todo cuanto me hace falta el problema es que en el web service lo tengo de la siguiente forma, algo ineficiente considero yo ya que lo que mas cuesta en una base de datos es precisamente abrir la conexión:
Webmethod Autorizar (usuario, contrasena)
{
Abro la conexión con oracle con el usuario y la contrasena
}
Webmethod Query (SQL)
{
Abro la conexión y ejecuto el sql
}
Webmethod Storeproc(storeproc, parameters)
{
Abro la conexión y ejecuto el storeproc
}
Y asi susecivamente, si observas en todos los metodos del servicio se abre la conexión con oracle, entonces lo que quiero es conservar esa conexión almacenada en una variable de session ya que la de aplicación seria comun para todos los usuarios que se conecten al servicio web, quedaria entonces
Private oracleconnection OC;
Webmethod Autorizar (usuario, contrasena)
{
OC = Abro la conexión con oracle con el usuario y la contrasena
}
Webmethod Query (SQL)
{
OC. ejecuto el sql
}
Webmethod Storeproc(storeproc, parameters)
{
OC. ejecuto el storeproc
}
Como vez con esto que quiero hacer la conexión solo se abre en el momento de autorizar al usuario y el resto utilizarian la misma conexión, el problema entonces se reduce a dejar OC en algun lugar, supuestamente Session[conn] = OC; pero que la session expira y me elimina los valores de OC, ya los métodos los declare de enablesession=trae y he estado problando con el web.config del servicio con los parámetros de <sessionstate> pero nada .
Estoy para volverme loco con esto, por favor pido me tires un cabo si esta en sus manos...
Saludos cordiales
Lic. Alain Ramírez Cabrejas.
[email protected]
Yo quiero quitarme de arriba arrastrar por las estaciones de trabajo donde instalare la aplicación el Cliente de Oracle.
Para ello mi aplicación utilizara todo el acceso al servidor oracle desde un servicio web por lo que solo tendre un solo
cliente oracle en el servidor donde se encuentra el webservice.
Manteniendo la filosofia de trabajo de una aplicación normal que usa un sgdb, es decir, abro mi aplicación y con ella la conexión con oracle y esta se queda abierta hasta tanto este abierta mi aplicación, el servicio debe de ser capaz de simular esto, ya me conecto a oracle sin ningun tipo de problemas y realizo consultas, storeproc y todo cuanto me hace falta el problema es que en el web service lo tengo de la siguiente forma, algo ineficiente considero yo ya que lo que mas cuesta en una base de datos es precisamente abrir la conexión:
Webmethod Autorizar (usuario, contrasena)
{
Abro la conexión con oracle con el usuario y la contrasena
}
Webmethod Query (SQL)
{
Abro la conexión y ejecuto el sql
}
Webmethod Storeproc(storeproc, parameters)
{
Abro la conexión y ejecuto el storeproc
}
Y asi susecivamente, si observas en todos los metodos del servicio se abre la conexión con oracle, entonces lo que quiero es conservar esa conexión almacenada en una variable de session ya que la de aplicación seria comun para todos los usuarios que se conecten al servicio web, quedaria entonces
Private oracleconnection OC;
Webmethod Autorizar (usuario, contrasena)
{
OC = Abro la conexión con oracle con el usuario y la contrasena
}
Webmethod Query (SQL)
{
OC. ejecuto el sql
}
Webmethod Storeproc(storeproc, parameters)
{
OC. ejecuto el storeproc
}
Como vez con esto que quiero hacer la conexión solo se abre en el momento de autorizar al usuario y el resto utilizarian la misma conexión, el problema entonces se reduce a dejar OC en algun lugar, supuestamente Session[conn] = OC; pero que la session expira y me elimina los valores de OC, ya los métodos los declare de enablesession=trae y he estado problando con el web.config del servicio con los parámetros de <sessionstate> pero nada .
Estoy para volverme loco con esto, por favor pido me tires un cabo si esta en sus manos...
Saludos cordiales
Lic. Alain Ramírez Cabrejas.
[email protected]
