none
Patron Duplex no funciona en ASP.Net Web Forms RRS feed

  • Pregunta

  • No logro hacer funcionar este patron, tengo lo siguiente:

    Servicio Web

    [ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(IDuplexCallBack))] public interface IDuplex { [OperationContract(IsOneWay=true)] void Hello(); } public interface IDuplexCallBack {

    [OperationContract(IsOneWay = true)] void HelloBack(string name); }


     [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]
        public class Duplex : IDuplex
        {
            public void Hello()
            {
                string name = "Jaime";
                OperationContext.Current.GetCallbackChannel<IDuplexCallBack>().HelloBack(name);
            }
        }

    Cliente

    [CallbackBehavior(UseSynchronizationContext = false)]
        public partial class EjemploDuplex : System.Web.UI.Page, ReferenciaServicio3.IDuplexCallback
        {
            protected void BtnEnviar_Click(object sender, EventArgs e)
            {
                InstanceContext instanceContext = new InstanceContext(this);
    
                ReferenciaServicio3.DuplexClient D = new ReferenciaServicio3.DuplexClient(instanceContext, "WSDualHttpBinding_IDuplex");
    
                D.Hello();
            }
    
            public void HelloBack(string name)
            {
                TxtNombre.Text = name;
            }
        }
    Tarda demasiado y no responde nose que esta mal, para que funcione gracias por su tiempo.


    • Editado RealMaster viernes, 13 de marzo de 2015 18:46
    viernes, 13 de marzo de 2015 18:41

Todas las respuestas

  • hola

    pero si desde una pagina aspx invocas un servicio duplex este responde de forma asincrona por lo que la pagina devolvera la respuesta al cliente y puede que aun no tengas respuesta del servicio

    podrias usar el duplex si es que la pagina lanza un proceso pero no espera una respuesta, si debes esperar algo del servicio en tu pagina la invocaicon debe ser sincrona, o sea no veo que duplex aplique

    dentro de un aspx debes usar un servicio wcf simple, invocas un webmethod y esperas la respuesta sin callback

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 13 de marzo de 2015 18:49
  • Leandro, pero el patron Duplex es un hibrido porque mezcla el patron Request and Response y OneWay, entonces por ello se puede obtener su valor en el cliente.

    Realice una depuracion y si entra al metodo donde se le asigna el valor a la caja de texto:

    Antes entra al metodo Hello sale del metodo del BtnEnviar_Click y luego entra al metodo HelloBack, supuestamente colocando el nombre en la caja de texto pero no es asi en la pagina de prueba no se muestra asi.

    miércoles, 18 de marzo de 2015 0:20