Visual Basic.NET - Servicios web.controlar errores

 
Vista:

Servicios web.controlar errores

Publicado por Jose M. (46 intervenciones) el 26/05/2010 16:38:48
Tengo un servicio web de pruebas donde acepto varios parametros, más de 10.
Cuando ejecuto el proyecto desde el visual studio aparece el servicio web con los parámetros a insertar manualmente, seguido del botón "invocar" para poner en marcha el servicio web.

Si no meto ni un solo dato y le doy a "invocar", se abre una ventana flotante de internet con el siguiente error:

System.ArgumentException: No se puede convertir en System.Int32.
Nombre del parámetro: type ---> System.FormatException: La cadena de entrada no tiene el formato correcto.
en System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
en System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
en System.String.System.IConvertible.ToInt32(IFormatProvider provider)
en System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
en System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
--- Fin del seguimiento de la pila de la excepción interna ---
en System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
en System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
en System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
en System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
en System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

Si en vez de NO meter datos, meto algunos, tambien me da ese error.

Quiero saber cómo controlar este tipo de errores.

Aunque marque puntos de interrupción en el código, el error se muestra sin llegar a pasar por el código del servicio web.

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Servicios web.controlar errores

Publicado por OliBeer (391 intervenciones) el 26/05/2010 22:51:20
Hola,

Creo que está claro, pero estás un poco confundido. Si contruyo alguna función, que como parámetro me acepte un Integer, por ejemplo el Id del cliente; algo así:

Private Function Consultar_Cliente(ByVAl Id_Cliente As Integer) As DataSet...

Duando invocamos esa función debemos mandarle el Id de cliente, si no, pues TRUENA!! Porque espera ese parámetro para su correcto funcionamiento.

De alguna manera, debes programar que tu función haga una cosa, si le mandaron el parámetro o no, pero para que no te marque error cuando no se lo mandas, debes declarar el Id_Cliente como OPTIONAL, y de esa manera, cuando no lo envíes, no marcará error.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Servicios web.controlar errores

Publicado por Jose M (46 intervenciones) el 27/05/2010 08:05:26
Muchas gracias OliBeer, veo claro lo que me explicas.

El caso es que este servicio web lo tengo que hacer yo, pero el uso lo harán terceras personas. Entonces quería saber si puedo implementar de alguna manera un método de comprobación de si se meten o no los datos, y si se meten si se hace bien, todo esto para notificar al cliente de esos posibles errores.

Pero hasta ahora con esas pruebas que hice, daba igual el código que metiera en el servicio web, pq con esos errores no llegaba a leer nada de código. Soltaba el error directamente.

Probaré ese OPTIONAL que comentas a ver si me ayuda.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:Servicios web.controlar errores

Publicado por roger (186 intervenciones) el 27/05/2010 15:06:41
la validacion que mencionas en realidad no es tu responsabilidad, la persona que consume el web service debe garantizar que los parametros le sean enviados. Como dices, en ese punto no tienes control de los parametros que se envian o no,a no ser que utilices el optional que mencionan, pero pues si tu servicio funciona bajo ciertos parametros, quien lo consume debe asegurar que estos parametros sean enviados.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Servicios web.controlar errores

Publicado por Jose M (46 intervenciones) el 27/05/2010 16:31:24
Gracias Roger, así es como pensaba pero con ciertas dudas. Ya lo tengo todo claro.

Un saludo a ambos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar