none
Error al consumir un WebService RRS feed

  • Pregunta

  • Hola a todos!!

    Tengo el siguiente problema: Tengo una aplicacion web a la cual le agrgue un archivo asmx con el metodo "Hello Word" (es el codigo que se genera automaticamente al agregar el archivo). Luego tengo una Ajax que al hacer blur en un control html se ejecuta invocando al webservice-hello word. Todo esto funciona perfectamente en el editor de codigo.

    El problema viene al publicar el sitio en el IIS. Si voy por el manager del IIS y le doy click derecho->browse  al archivo asmx me devuelve hello word sin problemas pero si trato de invocar desde el blur del control html de dice que no encuentra el archivo asmx.

    Este es el codigo generado al agregar un nuevo item webservice:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    
    namespace GMTramites.ServicioWeb {
        /// <summary>
        /// Summary description for TramitesWebService
        /// </summary>
        //[WebService(Namespace = "http://tempuri.org/")]
        [WebService(Namespace = "GMTramites.ServicioWeb")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
        [System.Web.Script.Services.ScriptService]
        public class TramitesWebService: System.Web.Services.WebService {
    
            [WebMethod]
            public string HelloWorld() {
                return "Hello World";
            }
        }
    }

    Si alguien tiene algun dato le agradezco pila

    Saludos.

    viernes, 4 de noviembre de 2016 20:18

Respuestas

  • hola

    en el codigo de ajax como indicas la url al asmx ? porque si el servicio responde lo unico que cambia es como defines la invocacion al servicio

    ademas podrias ayudarte con el developer tools del browser, al cual accedes con F12, entonces con la solapa network ver si hay un error http y que url usa para llamar al servicio

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta CristhianAr lunes, 7 de noviembre de 2016 13:54
    viernes, 4 de noviembre de 2016 21:05

Todas las respuestas

  • hola

    en el codigo de ajax como indicas la url al asmx ? porque si el servicio responde lo unico que cambia es como defines la invocacion al servicio

    ademas podrias ayudarte con el developer tools del browser, al cual accedes con F12, entonces con la solapa network ver si hay un error http y que url usa para llamar al servicio

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta CristhianAr lunes, 7 de noviembre de 2016 13:54
    viernes, 4 de noviembre de 2016 21:05
  • Hola. Gracias por tu respuesta.

    Te adjunto el script.

    function recuperarTramite() {
        //alert("entre en el recuperar");
        if ($.trim($("#txtNroTramite").val()) != "" && $.trim($("#txtNroTramite").val()) != "0") {
            var params = new Object();
            params.nroInase = $.trim($("#txtNroTramite").val());
            params = JSON.stringify(params);
    
            $.ajax({
                type: "POST",
                url: "../../ServicioWeb/TramitesWebService.asmx/HelloWorld",           
                data: params,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: false,
                success: mostrarTramite,
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(textStatus + ": " + XMLHttpRequest.responseText);
                }
            });
        }
    }

    Pero ejecutando la aplicación desde el Visual funciona sin problemas. Yo cree el webservice dentro de la aplicación. No se si esta bien esto.

    lunes, 7 de noviembre de 2016 12:30
  • hola

    en el codigo de ajax como indicas la url al asmx ? porque si el servicio responde lo unico que cambia es como defines la invocacion al servicio

    ademas podrias ayudarte con el developer tools del browser, al cual accedes con F12, entonces con la solapa network ver si hay un error http y que url usa para llamar al servicio

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Bueno... Utilizando las developer tools del explorador pude darme cuenta de que no tenia el nombre de la aplicación en la llamada al websrv.

    Muchas gracias Leandro.

    lunes, 7 de noviembre de 2016 13:56
  • hola

    pudiste validar con el developer tools si resuelve correctamente la url? es que me suena raro el ../../ que usas el definir la url del ajax

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 7 de noviembre de 2016 14:38
  • La direccion la armaba bien solo faltaba el nombre de la aplicacion que no me lo armaba lo tuve que poner en el script. Quedo asi:

    function recuperarTramite() {
        //alert("entre en el recuperar");
        if ($.trim($("#txtNroTramite").val()) != "" && $.trim($("#txtNroTramite").val()) != "0") {
            var params = new Object();
            params.nroInase = $.trim($("#txtNroTramite").val());
            params = JSON.stringify(params);
    
            $.ajax({
                type: "POST",
                url: "../../GMTramites/ServicioWeb/TramitesWebService.asmx/HelloWorld",
                data: params,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: false,
                success: mostrarTramite,
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(textStatus + ": " + XMLHttpRequest.responseText);
                }
            });
        }
    }Dejo la estructura de las carpetas..


    Los dos puntos los uso porque el script esta en una carpeta y el web service en otra dentro de la misma aplicacion. (No se si esta bien usarlo asi) Me di cuenta que a la direccion le faltaba el nombre de la aplicacion viendo la direccion que me daba el explorador al browsear el web dervice dentro del Manager del servidor.

    ¿Cómo deberia armar la url ?

    lunes, 7 de noviembre de 2016 14:57
  • lunes, 7 de noviembre de 2016 14:58
  • Aca dejo la imagen del devtools. Abajo esta como la resuleve la url. No se si es esto a lo que te referias.
    lunes, 7 de noviembre de 2016 15:03