none
Webservice WCF con Winform RRS feed

  • Pregunta

  • Hola Chicos  le comento estoy en mi 4to dia tratando de hacer un Web service en CS 2017, que solo conecte una base de datos en la Nube, esto para que algunas funciones estén conectada a la base de datos.

    Pero al generar una aplicación de servicio WFC y agregarle un metodo  me da error al agregar la referencia de servicio: 

    Error al descargar 'http://localhost:63097/Service1.svc/$metadata'.
    Error de solicitud con el siguiente estado HTTP 400: Bad Request.

    los códigos son esto 

    Service1.svc.cs

    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Web;
    using System.Text;
    
    namespace WSConectar
    {
        // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "Service1" en el código, en svc y en el archivo de configuración.
        // NOTE: para iniciar el Cliente de prueba WCF para probar este servicio, seleccione Service1.svc o Service1.svc.cs en el Explorador de soluciones e inicie la depuración.
        public class Service1 : IService1
        {
          
    
            public string GetData(int value)
            {
                return string.Format("You entered: {0}", value);
            }
    
            public CompositeType GetDataUsingDataContract(CompositeType composite)
            {
                if (composite == null)
                {
                    throw new ArgumentNullException("composite");
                }
                if (composite.BoolValue)
                {
                    composite.StringValue += "Suffix";
                }
                return composite;
            }
    
            public SqlConnection conectar()
            {
    
                System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
                //conn.ConnectionString = "Data Source=DESKTOP-QFIA57L\\SQLEXPRESS;Initial Catalog=sistinv;Integrated Security=True";
                //conn.ConnectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=sistinv;Integrated Security=True";
                conn.ConnectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=sistinv;Integrated Security=True";
    
                try
                {
    
                    conn.Open();
    
                }
                catch (SqlException eX)
                {
    
                    throw new ArgumentException(eX.Message);
    
                }
                return (conn);
            }
        }
    }
    

    IService1.cs

    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Web;
    using System.Text;
    
    namespace WSConectar
    {
        // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de interfaz "IService1" en el código y en el archivo de configuración a la vez.
        [ServiceContract]
        public interface IService1
        {
       
            [OperationContract]
            string GetData(int value);
    
            [OperationContract]
            CompositeType GetDataUsingDataContract(CompositeType composite);
    
            [OperationContract]
            SqlConnection conectar();
    
             
            // TODO: agregue aquí sus operaciones de servicio
        }
    
    
        // Utilice un contrato de datos, como se ilustra en el ejemplo siguiente, para agregar tipos compuestos a las operaciones de servicio.
        [DataContract]
        public class CompositeType
        {
            bool boolValue = true;
            string stringValue = "Hello ";
    
            [DataMember]
            public bool BoolValue
            {
                get { return boolValue; }
                set { boolValue = value; }
            }
    
            [DataMember]
            public string StringValue
            {
                get { return stringValue; }
                set { stringValue = value; }
            }
        }
    }
    

    Si ven solo agregue el metodo 

    SqlConnection conectar();
    

    para conectar la base de datos , al eliminarlo tengo el webservice funcionando en su totalidad.

    Que puede ser ?? que hago mal ?? si pudieran guiarme gracias 



    Una respuesta JP

    miércoles, 30 de septiembre de 2020 19:14

Todas las respuestas

  • hola

    >>Error de solicitud con el siguiente estado HTTP 400: Bad Request.

    si el problema se relaciona con agregar la referencia quiere decir que este no esta eejcutando de forma correcta

    Si pones la url

    http://localhost:63097/Service1.svc

    en el browser deberias poder ver la pagina por defecto del servicio

    Ahora mencionas algo de la conexion, estas seguro que te conectas bien a la db?

    veo que usas seguridad integrada, pero con que credenciales ejecutas? intentaste poner la seguridad de Sql Server con usuario y password en el connection string

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 30 de septiembre de 2020 19:24
  • Estoy tratando que me el web service se me levante como comente llevo 4 dias tratando, aun no lo he logrado hacerlo cuando pueda te aviso ya.

    Pero como se logra arreglar este error que tengo gracias 


    Una respuesta JP

    miércoles, 30 de septiembre de 2020 19:59