Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: ASP.NETWCF
Hi I have a service which is implementing pollingduplex of wcf.I am able to use it in silverlight By giving Binding and Address as it is async call.But I am not able to use it ASP.Net .So can any one help me in consuming it in ASP.net
public partial class UIChat : System.Web.UI.Page, IServiceCallback
    {
        public EndpointAddress servAddress = null;
        public PollingDuplexHttpBinding binding = null;
 
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
        protected void btnJoin_Click(object sender, EventArgs e)
        {
            servAddress = new EndpointAddress("http://localhost:59849/MyService.svc");
           var binding = new PollingDuplexHttpBinding();
            binding.DuplexMode = PollingDuplexMode.MultipleMessagesPerPoll;
 
                                                        
             InstanceContext objIC = new InstanceContext(this);
               ServiceClient obj = new ServiceClient(objIC,binding,servAddress);
            string data= obj.JoinChat(txtJoin.Text);
            lblUser.Text = data;
        }
 

        public void ReciveMessage(string message)
        {
            throw new NotImplementedException();
        }
 
        public void UserJoined(string[] users)
        {
            lblUser.Text = users[0].ToString();
        }
 
        public void UserLeft(string[] users)
        {
            throw new NotImplementedException();
        }
    }
}
 

 

 
Web.config
<?xml version="1.0"?>
 
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
 
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
 
  <system.serviceModel>
    
    <extensions>
      <bindingExtensions>
        <add name="pollingDuplexHttpBinding"
                              type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,System.ServiceModel.PollingDuplex, Version=4.0.0.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </bindingExtensions>
    </extensions>
    <services>
      <service name="WebChatService.MyService" behaviorConfiguration="ServBehave">
        <endpoint
           address=""
            binding="pollingDuplexHttpBinding"
            contract="WebChatService.IService"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" ></endpoint>
        <!--<endpoint
            address=""
             binding="mexHttpBinding"
             contract="IMetadataExchange"/>-->
      </service>
    </services>
    <!--<bindings>
        <pollingDuplexHttpBinding></pollingDuplexHttpBinding>
          
      </bindings>-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServBehave">
          <serviceMetadata httpGetEnabled="false" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="false"
            />
 
  </system.serviceModel>
</configuration>
 
Interface Part
using System.Collections.Generic;
using System.ServiceModel;
using System.Runtime.Serialization;
 
namespace WebChatService
{
    /// <summary>
    /// Service Interface: Holds signature of methods in service
    /// which are hosted for others to use them.
    /// </summary>
    [ServiceContract(CallbackContract = typeof(IServiceCallback))]
    public interface IService
    {
 
        [OperationContract]
        string JoinChat(string emailId);
 
        [OperationContract(IsOneWay = true)]
        void LeaveChat(string emailId);
 
        [OperationContract(IsOneWay = true)]
        void RemoveUserFromChat(string emailId);
 
    }
 
    /// <summary>
    /// Callback Interface: Holds methods which are needed by service 
    /// to call the UI back in case of any event is held in service.
    /// </summary>
    /// 
    
    public interface IServiceCallback
    {
        [OperationContract(IsOneWay = true)]
        void ReciveMessage(string message);
 
        [OperationContract(IsOneWay = true)]
        void UserJoined(IEnumerable<string> users);
 
        [OperationContract(IsOneWay = true)]
        void UserLeft(IEnumerable<string> users);
    }
}
 
Posted 22-Jan-13 20:20pm
Edited 22-Jan-13 20:21pm
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Your Filters
Interested
Ignored
     
0 Guruprasad.K.Basavaraju 446
1 Sergey Alexandrovich Kryukov 360
2 Shai Vashdi 318
3 OriginalGriff 265
4 Peter Leow 171
0 Sergey Alexandrovich Kryukov 9,109
1 OriginalGriff 5,290
2 Peter Leow 4,010
3 Maciej Los 3,535
4 Abhinav S 3,263


Advertise | Privacy | Mobile
Web04 | 2.8.140415.2 | Last Updated 23 Jan 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Use
Layout: fixed | fluid