WebService compatilidad .net framework 2.0 con 4.0

Respondida WebService compatilidad .net framework 2.0 con 4.0

  • miércoles, 07 de marzo de 2012 17:27
     
      Tiene código

    Buenas,

    tengo un Servicio Web en .net framework 2.0, y una aplicacion windows la cual se conecta a este servicio en .net framework 4.0.

    El servicio web tiene un metodo iniciarsesion(usuario,contrasena) el cual asigna valores a un objeto Session y tiene la propiedad [WebMethod(EnableSession=true)] para cada uno de los restantes metodos, tengo otro metodo llamado DescargarPreferencia() {donde se verifica que la session este iniciada y retorna ciertos valores}.

    El caso es que mi aplicacion windows .net 4.0, invoca el metodo del servicio iniciarsesion (usando el CookieContainer()) perfectamente, luego sucesivamente inoco el metodo descargarpreferencia() el cual ya no tiene valor en la session.

    Este es un ejemplo del codigo de una aplicacion consola 4.0 la cual no me funciona (pero si lo hago en 2.0 si funciona perfectamente)

    La pregunta es si existe incopatibilidad con el .net 4.0 con el .net 2.0 para mantener las sesiones?

    static void Main(string[] args)
            {
                //1.- Instancio el Servicio
                Orinoco.ServicioReembolso servicio = new Orinoco.ServicioReembolso();
    
                //2.- Creo mis variables
                Orinoco.ResultadoOperacionConValorOfUsuarioAfiliado resultadoIniciarSesion = new Orinoco.ResultadoOperacionConValorOfUsuarioAfiliado();
                Orinoco.ResultadoOperacionConValorOfConfiguracion resultadocargarPrefererncias = new Orinoco.ResultadoOperacionConValorOfConfiguracion();
                Orinoco.Configuracion conf = new Orinoco.Configuracion();
    
                //3.- Seteo un cookie container para poder iniciar sesión en el servicio web
                System.Net.CookieContainer galletita = new CookieContainer();
                servicio.CookieContainer = galletita;
    
                //4.- se llama al metodo iniciar sesion
                resultadoIniciarSesion = servicio.IniciarSesion("farmatodo", "a123456", 333);
    
                Console.WriteLine("=============1.- Iniciando sesion============");
                Console.WriteLine(resultadoIniciarSesion.Estatus.ToString());
                Console.ReadLine();
    
    
                //5.-Se llama al método Cargar Preferencias
                Console.WriteLine("=============2.- Grabar cabecera=============");
                resultadocargarPrefererncias = servicio.CargarPreferencias();
    
                Console.WriteLine(resultadocargarPrefererncias.Valor.AfiliadoCodigo.ToString());
                Console.WriteLine(resultadocargarPrefererncias.Valor.AfiliadoRIF.ToString());
                Console.WriteLine(resultadocargarPrefererncias.Valor.AfiliadoRS.ToString());
                Console.WriteLine(resultadocargarPrefererncias.Valor.ArchivoDatosExportacionEncriptar.ToString());
                Console.WriteLine(resultadocargarPrefererncias.Valor.ArchivoDatosExportacionExt.ToString());
                Console.WriteLine(resultadocargarPrefererncias.Valor.ExportarArchivoAutomatico.ToString());
    
                Console.ReadLine();
    
    
            }

    gracias

Todas las respuestas

  • miércoles, 07 de marzo de 2012 17:37
    Moderador
     
     Respondida Tiene código

    para que usas estas lineas

    System.Net.CookieContainer galletita = new CookieContainer();
    servicio.CookieContainer = galletita;

    hast donde se no necesitas definri la cookie para que el servicio mantenga al session si es que habilitas [WebMethod(EnableSession=true)]

    que sucede si quitas esa linea ?

    -------

    ademas porque no haces

    Orinoco.ResultadoOperacionConValorOfUsuarioAfiliado resultadoIniciarSesion = servicio.IniciarSesion("farmatodo", "a123456", 333);

    digo declaras la variable de resultado en la lisma linea, en lugar de ponerla por separado

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

  • miércoles, 07 de marzo de 2012 17:56
     
     

    Si quito la linea, no hay diferencia y por la asignacion de variables no hay problema, como explique anteriormente este código en .net framework 2.0 funciona perfecto!, el problema es en 4.0

    gracias Leandro

  • miércoles, 07 de marzo de 2012 18:07
    Moderador
     
     Respondida

    me suena raro que sea .net 4 el del problema

    no conozco impoatibilidad entre estos, menos si se trata de un web service

    la invocacion mas alla de la session se realiza sin error alguno ? o sea el servicio cuando lo invocas y le passas usuario y password no genera ningun problema ?

    esto en que ambiente lo realizas, esta todo en el VS cuando ejecutas o se produce cuando lo llevas a produccion y hces el deploy de cada parte ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina