Servicio web que obtiene imagenes

14/08/2008 - 19:36 por Juan Martínez | Informe spam
Hola!!!
Tengo un webservice que se conecta a sql server para obtener el conteido de
un campo image con array de bits y me funciona perfectamente cuando la
solución de VS 2005 contiene los dos proyectos (el WS y la aplicación windows
forms consumidora) pero, cuando cambio la referencia web hacia la publicación
del servicio en el IIS local no me responde nada. Que puedo estar haciendo
mal?

Muchas gracias a tod@s,

Juan

Preguntas similare

Leer las respuestas

#1 Willy Mejía
15/08/2008 - 06:36 | Informe spam
Algún mensaje de error? Implementaste algún monitoreo al servicio para que
puedas revisar su respuesta? En fin, que si mayor información es difícil
ayudarte...

Saludos.

"Juan Martínez" escribió en el
mensaje de noticias:
Hola!!!
Tengo un webservice que se conecta a sql server para obtener el conteido
de
un campo image con array de bits y me funciona perfectamente cuando la
solución de VS 2005 contiene los dos proyectos (el WS y la aplicación
windows
forms consumidora) pero, cuando cambio la referencia web hacia la
publicación
del servicio en el IIS local no me responde nada. Que puedo estar haciendo
mal?

Muchas gracias a ,

Juan
Respuesta Responder a este mensaje
#2 Juan Martínez
15/08/2008 - 12:28 | Informe spam
Hola Willy: No tengo implementado ningun control de errores, ya que la
funcion que rescata la foto de la DB devuelve un tipo byte[] y recibe un
parametro con un identficador de empleado. En este parametro he intentado
devolver el mensaje de error pero no me funciona. Te adjunto la función para
ver si puedes decirme algo, o darme algún enlace de como puedo controlar los
errores de WServices. Muchas gracias por tu atención, de verdad.

public byte[] obtener_foto(string empleado)
{
try
{
SqlConnection miconn = GetConnection();
SqlCommand miComm = new SqlCommand();
miComm.Connection = miconn;
miComm.CommandText = "SELEC imagen FROM dbo.imagenes WHERE
employee_id=" + empleado;
SqlDataReader dr = miComm.ExecuteReader();
dr.Read();
byte[] bindata = (byte[])dr.GetValue(0);
miComm.Dispose();
miconn.Close();
return bindata;
}
catch (Exception e)
{
empleado = e.Message.ToString();
return null;
}
}

"Willy Mejía" wrote:

Algún mensaje de error? Implementaste algún monitoreo al servicio para que
puedas revisar su respuesta? En fin, que si mayor información es difícil
ayudarte...

Saludos.

"Juan Martínez" escribió en el
mensaje de noticias:
> Hola!!!
> Tengo un webservice que se conecta a sql server para obtener el conteido
> de
> un campo image con array de bits y me funciona perfectamente cuando la
> solución de VS 2005 contiene los dos proyectos (el WS y la aplicación
> windows
> forms consumidora) pero, cuando cambio la referencia web hacia la
> publicación
> del servicio en el IIS local no me responde nada. Que puedo estar haciendo
> mal?
>
> Muchas gracias a ,
>
> Juan

Respuesta Responder a este mensaje
#3 Willy Mejía
15/08/2008 - 18:50 | Informe spam
Para devolver un mensaje de fallo (SOAP Fault) utiliza FaultException
si es un WCF. Pero si es un ASMX utiliza SoapException.
http://msdn.microsoft.com/library/s...ption.aspx

Pero además de eso (y en primer lugar) deberías utilizar el EventLog en tu
código para que deje rastro de lo que hace. Ahí escribirías el mensaje de
error, excepciones internas y demás detalles que puedas colocar. En los
mensajes al cliente solo notifica que ocurrió un fallo.
http://support.microsoft.com/kb/307024

Para examinar los Mensajes SOAP configura el "tracing" en el archivo de
configuración con las herramientas correspondientes de WCF.
http://msdn.microsoft.com/en-us/lib...33025.aspx
Si es un ASMX podrías usar WSE o algún monitor TCP de terceros.

Por otra parte, dado que los datos son binarios ¿Empleas MTOM?
Si no, investiga al respecto.

Saludos,
Willy Mejía
willy.mx.kz


"Juan Martínez" escribió en el
mensaje de noticias:
Hola Willy: No tengo implementado ningun control de errores, ya que la
funcion que rescata la foto de la DB devuelve un tipo byte[] y recibe un
parametro con un identficador de empleado. En este parametro he intentado
devolver el mensaje de error pero no me funciona. Te adjunto la función
para
ver si puedes decirme algo, o darme algún enlace de como puedo controlar
los
errores de WServices. Muchas gracias por tu atención, de verdad.

public byte[] obtener_foto(string empleado)
{
try
{
SqlConnection miconn = GetConnection();
SqlCommand miComm = new SqlCommand();
miComm.Connection = miconn;
miComm.CommandText = "SELEC imagen FROM dbo.imagenes WHERE
employee_id=" + empleado;
SqlDataReader dr = miComm.ExecuteReader();
dr.Read();
byte[] bindata = (byte[])dr.GetValue(0);
miComm.Dispose();
miconn.Close();
return bindata;
}
catch (Exception e)
{
empleado = e.Message.ToString();
return null;
}
}

"Willy Mejía" wrote:

Algún mensaje de error? Implementaste algún monitoreo al servicio para
que
puedas revisar su respuesta? En fin, que si mayor información es difícil
ayudarte...

Saludos.

"Juan Martínez" escribió en el
mensaje de noticias:
> Hola!!!
> Tengo un webservice que se conecta a sql server para obtener el
> conteido
> de
> un campo image con array de bits y me funciona perfectamente cuando la
> solución de VS 2005 contiene los dos proyectos (el WS y la aplicación
> windows
> forms consumidora) pero, cuando cambio la referencia web hacia la
> publicación
> del servicio en el IIS local no me responde nada. Que puedo estar
> haciendo
> mal?
>
> Muchas gracias a ,
>
> Juan

Respuesta Responder a este mensaje
#4 Jhonny Vargas P.
15/08/2008 - 23:52 | Informe spam
Te funciona devolver bytes mediante servicio web?

Intenta transformar esos bytes en String Base 64 y cuando rescates ese
string en el winform, convertirlo a Byte...




"Juan Martínez" escribió en el
mensaje de noticias:
Hola!!!
Tengo un webservice que se conecta a sql server para obtener el conteido
de
un campo image con array de bits y me funciona perfectamente cuando la
solución de VS 2005 contiene los dos proyectos (el WS y la aplicación
windows
forms consumidora) pero, cuando cambio la referencia web hacia la
publicación
del servicio en el IIS local no me responde nada. Que puedo estar haciendo
mal?

Muchas gracias a ,

Juan
Respuesta Responder a este mensaje
#5 Juan Martínez
17/08/2008 - 12:34 | Informe spam
Hola Jhonny: Sí, si en la misma solución tengo el web service que devuelve
byte[] y se ejecuta en servidor web asp de desarrollo, pero cuando lo publico
en el IIS local y cambio el proxy del consumidor por la URL real
(http://server/servicio.aspx) me compila bien pero no me devuelve error ni
nada.

Gracias a todos por vuestra ayuda, investigaré al respecto, lo que pasa es
que sólo quería hacer una pequeña prueba de rendimiento, yo ya no desarrollo
y ando algo perdido con esto.

"Jhonny Vargas P." wrote:

Te funciona devolver bytes mediante servicio web?

Intenta transformar esos bytes en String Base 64 y cuando rescates ese
string en el winform, convertirlo a Byte...




"Juan Martínez" escribió en el
mensaje de noticias:
> Hola!!!
> Tengo un webservice que se conecta a sql server para obtener el conteido
> de
> un campo image con array de bits y me funciona perfectamente cuando la
> solución de VS 2005 contiene los dos proyectos (el WS y la aplicación
> windows
> forms consumidora) pero, cuando cambio la referencia web hacia la
> publicación
> del servicio en el IIS local no me responde nada. Que puedo estar haciendo
> mal?
>
> Muchas gracias a ,
>
> Juan


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida