Monday, January 18, 2016

Accessing WCF Service at WCF Client using Custom Binding created programmatically

           
               EndpointAddress remoteAddress = new EndpointAddress(WebServiceURL);

                TestServiceClient serviceClient = new TestServiceClient(GetBinding(), remoteAddress);

                serviceClient.ClientCredentials.UserName.UserName = userNameValue;
                serviceClient.ClientCredentials.UserName.Password = passwordValue;
                serviceClient.Open();

                UpdatePaymentStatusRequest newRequest = new UpdatePaymentStatusRequest();
                newRequest.Status="Paid";
                UpdatePaymentStatusResponse newResponse=newRequest.UpdateStatus(newRequest);

                serviceClient.Close();




 public static CustomBinding GetBinding()
        {
            CustomBinding binding = new CustomBinding();
            binding.Name = "Name_of_your_binding";
            binding.CloseTimeout = TimeSpan.Parse("00:05:00");
            binding.OpenTimeout = TimeSpan.Parse("00:05:00");
            binding.ReceiveTimeout = TimeSpan.Parse("00:10:00");
            binding.SendTimeout = TimeSpan.Parse("00:10:00");
            binding.Elements.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap12, System.Text.Encoding.UTF8));
            //   HttpsTransportBindingElement hbe = new HttpsTransportBindingElement();
            HttpTransportBindingElement hbe = new HttpTransportBindingElement();
            //  hbe.RequireClientCertificate = true;
            hbe.AllowCookies = false;
            hbe.AuthenticationScheme = System.Net.AuthenticationSchemes.Basic;
            hbe.BypassProxyOnLocal = false;
            hbe.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
            hbe.KeepAliveEnabled = true;
            hbe.ManualAddressing = false;
            hbe.MaxBufferPoolSize = Convert.ToInt64(int.MaxValue);
            hbe.MaxBufferSize = int.MaxValue;
            hbe.MaxReceivedMessageSize = Convert.ToInt64(int.MaxValue);
            hbe.ProxyAuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
            hbe.Realm = "";
            hbe.TransferMode = TransferMode.Buffered;
            hbe.UnsafeConnectionNtlmAuthentication = false;
            hbe.UseDefaultWebProxy = true;
            binding.Elements.Add(hbe);
            return binding;
        }

Reference :

http://technologybooth.blogspot.sg/2013/08/initializing-wcf-client-programmatically.html

No comments:

Post a Comment