Web Service y DllImport

16/10/2003 - 00:13 por Jesus | Informe spam
En un servicio Web estamos importando funciones de una
DLL usando DllImport. El problema es que el servicio solo
puede responder una petición a la vez, si esta atendiendo
una y llega otra, se traba. ¿Alguien conoce alguna manera
de que puede atender varias solicitudes?

Gracias

Preguntas similare

Leer las respuestas

#1 Michael Giagnocavo [MVP]
16/10/2003 - 02:24 | Informe spam
Puedes poner tu codigo aqui (solo los partes necesarios)? El codigo debe
tener algo que no esta funcionando bien con el multithreading (porque los
web services normalmente funcionan bien con varias peticiones).
-mike
MVP

"Jesus" wrote in message
news:2c2e801c39369$9efd37b0$
En un servicio Web estamos importando funciones de una
DLL usando DllImport. El problema es que el servicio solo
puede responder una petición a la vez, si esta atendiendo
una y llega otra, se traba. ¿Alguien conoce alguna manera
de que puede atender varias solicitudes?

Gracias
#2 Jesus
16/10/2003 - 16:42 | Informe spam
Aquí esta el código en una clase aparte en donde
definimos todos los imports, pero
Este es el que nos esta dado ese problema
namespace Library
{
public class Compiler
{
[DllImport("Compilador.dll",
EntryPoint="?
@@",
CallingConvention=CallingConvention.ThisCall)]
public static extern string Ejecuta(IntPtr ap,
bool flag,string archivo,string piza,string
wks,string treales,string tseries,int par_year1,int
par_year2);
}
}

Después lo llamamos en el WebService así

IntPtr acomp = Library.Compiler.CreaCompiler();
paso=Library.Compiler.Ejecuta(acomp,true,
"c:\\arc.err",
pd.llena_cadpiza,pd.llena_cadwks,
pd.llena_tablareales,
pd.llena_tablaseries, //hay que implementar
esto
pd.llena_year,pd.llena_year);

Es aquí en donde si ya esta atendiendo una llamada y
entra otra, se traba

Gracias

Mostrar la cita
necesarios)? El codigo debe
Mostrar la cita
multithreading (porque los
Mostrar la cita
peticiones).
Mostrar la cita
#3 Michael Giagnocavo [MVP]
16/10/2003 - 19:14 | Informe spam
Puedes hacer prubas para asegurar que es esa llamada (por ejemplo, cambiarlo
a un Thread.Sleep(5000) para probar). Puede ser que algo en ese Dll es solo
para un thread?

-mike
MVP

"Jesus" wrote in message
news:00a301c393f3$c0a52410$
Aquí esta el código en una clase aparte en donde
definimos todos los imports, pero
Este es el que nos esta dado ese problema
namespace Library
{
public class Compiler
{
[DllImport("Compilador.dll",
EntryPoint="?
@@",
CallingConvention=CallingConvention.ThisCall)]
public static extern string Ejecuta(IntPtr ap,
bool flag,string archivo,string piza,string
wks,string treales,string tseries,int par_year1,int
par_year2);
}
}

Después lo llamamos en el WebService así

IntPtr acomp = Library.Compiler.CreaCompiler();
paso=Library.Compiler.Ejecuta(acomp,true,
"c:\\arc.err",
pd.llena_cadpiza,pd.llena_cadwks,
pd.llena_tablareales,
pd.llena_tablaseries, //hay que implementar
esto
pd.llena_year,pd.llena_year);

Es aquí en donde si ya esta atendiendo una llamada y
entra otra, se traba

Gracias

Mostrar la cita
necesarios)? El codigo debe
Mostrar la cita
multithreading (porque los
Mostrar la cita
peticiones).
Mostrar la cita
#4 Ricardo Gonzalez
17/11/2003 - 16:43 | Informe spam
Es muy probable que la dll esté construida para single thread. Despues de
terminar la primera petición se atiende la segunda?

Ricardo González Vargas.
Design & Electronic Automation Engineer.
MVP

"Jesus" wrote in message
news:00a301c393f3$c0a52410$
Aquí esta el código en una clase aparte en donde
definimos todos los imports, pero
Este es el que nos esta dado ese problema
namespace Library
{
public class Compiler
{
[DllImport("Compilador.dll",
EntryPoint="?
@@",
CallingConvention=CallingConvention.ThisCall)]
public static extern string Ejecuta(IntPtr ap,
bool flag,string archivo,string piza,string
wks,string treales,string tseries,int par_year1,int
par_year2);
}
}

Después lo llamamos en el WebService así

IntPtr acomp = Library.Compiler.CreaCompiler();
paso=Library.Compiler.Ejecuta(acomp,true,
"c:\\arc.err",
pd.llena_cadpiza,pd.llena_cadwks,
pd.llena_tablareales,
pd.llena_tablaseries, //hay que implementar
esto
pd.llena_year,pd.llena_year);

Es aquí en donde si ya esta atendiendo una llamada y
entra otra, se traba

Gracias

Mostrar la cita
necesarios)? El codigo debe
Mostrar la cita
multithreading (porque los
Mostrar la cita
peticiones).
Mostrar la cita
Ads by Google
Search Busqueda sugerida