C sharp - Obtener dato de lista de Web Service asmx C#

 
Vista:
sin imagen de perfil
Val: 16
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Obtener dato de lista de Web Service asmx C#

Publicado por Fabian (11 intervenciones) el 19/03/2022 03:03:31
Buen dia a todos

Bueno, escribo ya que no estoy logrando un resultado de mi consumo de Web Service optimo.

Tengo un servicio asmx el cual consulta una base de datos y retorna los valores en una lista de la siguiente manera:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Datos
{
    public string Empresa_Nombre { get; set; }
    public string Empresa_Direccion { get; set; }
    public int Empresa_Telefono { get; set; }
}
 
[Web Method]
public List<Datos> ConsultaDatos(int Busqueda)
{
    List<Datos> N = new List<Datos>();
    --Consulta SQL Aqui--
    while (Reader.Read() == true)
    {
        N.Add(new NotaC
        {
            Empresa_Nombre = Reader["ENombre"].ToString(),
            Empresa_Direccion = Reader["EDireccion"].ToString(),
            Empresa_Telefono = Convert.ToInt32(Reader["ETelefono"])
        });
    }
    return N;
}

Al consultarlo directamente por el web service (URL) funciona bien, me trae los datos en el XML. Pero ahora estoy tratando de consumirlo desde otra aplicacion ASP.NET C# asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var enviar = Convert.ToInt32(TextBox1.Text);
 
    //ORIGINAL //80438
    using (ZamWS.ZamWSSoapClient C = new ZamWS.ZamWSSoapClient())
    {
        var respuesta = C.ConsultaNotas(enviar);
 
        //ESTE FUE MI PRIMER INTENTO FALLIDO, NO ME TRAE EL DATO SELECCIONADO
        /*List<NotaC> NR = new List<NotaC>();
        NR.Add(new NotaC
        {
            Nombre = respuesta[0].Empresa_Nombre.ToString(), //REALMENTE NO SE SI ESTAS LINEAS ESTAN BIEN
            Direccion = respuesta[0].Empresa_Direccion.ToString(),
            Telefono = Convvert.ToInt32(respuesta[0].Empresa_Telefono)
        });*/
 
        TextBox1.Text = NR.Nombre.ToString(); //NO ME TRAE NADA
 
        //ESTE FUE MI SEGUNDO INTENTO, ME DA COMO RESULTADO EL MISMO ERROR DEL PRIMERO
        var result = (from dato in respuesta
                      select new NotaC
                      {
                           Nombre = dato.Empresa.Nombre,
                           Direccion = dato.Empresa_Direccion,
                           Telefono = dato.Empresa_Telefono,
                      }).ToList();
 
        TextBox1.Text = result[0].Nota.ToString(); //NO ME TRAE NADA
     }

El error que recibo es del maxreceivedmessagesize. Lo arregle en el web.config de ambos cliente y servidor asi:

1
2
3
4
5
<customBinding>
    <binding name="x">
        <httpsTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
    </binding>
</customBinding>

Esto lo encontré andando en foros de internet, pero no me funciona me sigue el mismo error.

Mi pregunta es, ¿estoy retornando los datos bien del Web Service?, ¿de que otra manera puedo obtener los datos de una lista?, por cierto también en la configuración del consumo le puse System.Collections.Generic.List. La cantidad de caracteres que retorna en cada dato es muy grande.

Agradezco a quienes me puedan colaborar
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