Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/04/2017, 03:38
Avatar de Ratus-BROWN
Ratus-BROWN
 
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 169
Antigüedad: 15 años, 2 meses
Puntos: 8
Consumir servicio WCF desde petición AJAX Jquery

Hola buenos días a toda@s,


Estoy intentando consumir un método proporcionado por un servicio WCF, mediante una llamada Ajax de jQuery, pero siempre obtengo el error de que la petición no encuentra el servicio.

Lo tengo montado todo en una solución de VS2015, por un lado esta la definición del servicio en un proyecto donde están definidos el ServiceContract, OperationContract, DataContract y DataMember, y luego el servicio Service1.svc que implementa los métodos definidos en el contrato. Por otro lado tengo un proyecto en ASP.NET que es el que actúa como cliente (consume el servicio), desde este proyecto utilizo una petición Ajax que la invoca un botón, esta petición lo que hace es intentar ejecutar un método proporcionado por el servicio.

Mi llamada AJAX:

Código Javascript:
Ver original
  1. $("#LlamadaAjaxServicio").click(function() {
  2.  
  3.                 $.ajax({
  4.                     type: "POST",
  5.                     url: "Service1.svc/ObtenerDatos", // Location of the service
  6.                     data: '{"dni": "' + 7 + '"}',
  7.                     crossDomain: true,
  8.                     contentType: "application/json", ver
  9.                     dataType: "json",
  10.                     processdata: true,
  11.                     success: function (msg) {
  12.  
  13.                         $("#label").val(msg.d.Name);
  14.  
  15.                     },
  16.                     error: function () {
  17.  
  18.                         alert("error");
  19.  
  20.                     }
  21.                 });
  22.      
  23.             });
  24.  
  25.         });


Código C:
Ver original
  1. [ServiceContract]
  2.     public interface IDatos
  3.     {
  4.  
  5.         [OperationContract]
  6.         Datos ObtenerDatos(int dni);
  7.  
  8.      
  9.     }
  10.  
  11.  
  12.     // Use a data contract as illustrated in the sample below to add composite types to service operations.
  13.     [DataContract]
  14.     public class Datos
  15.     {
  16.        
  17.  
  18.         [DataMember]
  19.         public int Dni { get; set; }
  20.  
  21.         [DataMember]
  22.         public string Name { get; set; }
  23.  
  24.         [DataMember]
  25.         public string Surname { get; set; }
  26.  
  27.     }


Service1.svc

Código C:
Ver original
  1. [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
  2.     public class Service1 : IDatos
  3.     {
  4.        
  5.         public Datos ObtenerDatos(int dni)
  6.         {
  7.             Datos dt = null;
  8.  
  9.             dt = new Datos();
  10.  
  11.             dt.Dni = dni;
  12.             dt.Name = "Nombre";
  13.             dt.Surname = "Apellido";
  14.  
  15.             return dt;
  16.  
  17.         }
  18.     }


El problema que tengo es que no encuentra el servicio. ¿Estoy construyendo más la url de la petición? ¿Podría alguien orientarme un poco?


Gracias.
Saludos
__________________
Disturb_downstairs (....we are cooking!)