internal static bool TryCreate(BindingElementCollection bindingElements, out Binding binding) { if (bindingElements == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements"); } binding = null; ContextBindingElement element = bindingElements.Find <ContextBindingElement>(); if ((element != null) && (element.ContextExchangeMechanism != ContextExchangeMechanism.HttpCookie)) { Binding binding2; BindingElementCollection elements = new BindingElementCollection(bindingElements); elements.Remove <ContextBindingElement>(); if (NetTcpBinding.TryCreate(elements, out binding2)) { NetTcpContextBinding binding3 = new NetTcpContextBinding((NetTcpBinding)binding2) { ContextProtectionLevel = element.ProtectionLevel, ContextManagementEnabled = element.ContextManagementEnabled }; binding = binding3; } } return(binding != null); }
public ServiceHost CreateServiceHost(ClusterConfiguration clusterConfiguration) { var managerNode = new ManagerNode(clusterConfiguration); managerNode.Start(); var serviceHost = new ServiceHost(managerNode, new[] { new Uri(string.Format("http://localhost:{0}/brightstarcluster", Configuration.HttpPort)), new Uri(string.Format("net.tcp://localhost:{0}/brightstarcluster", Configuration.TcpPort)), new Uri(string.Format("net.pipe://localhost/{0}", Configuration.NamedPipeName)) }); var basicHttpBinding = new BasicHttpContextBinding { TransferMode = TransferMode.StreamedResponse, MaxReceivedMessageSize = int.MaxValue, SendTimeout = TimeSpan.FromMinutes(30), ReaderQuotas = XmlDictionaryReaderQuotas.Max, Namespace = "http://www.networkedplanet.com/schemas/brightstar" }; var netTcpContextBinding = new NetTcpContextBinding { TransferMode = TransferMode.StreamedResponse, MaxReceivedMessageSize = int.MaxValue, SendTimeout = TimeSpan.FromMinutes(30), ReaderQuotas = XmlDictionaryReaderQuotas.Max, Namespace = "http://www.networkedplanet.com/schemas/brightstar" }; var netNamedPipeBinding = new NetNamedPipeBinding { TransferMode = TransferMode.StreamedResponse, MaxReceivedMessageSize = int.MaxValue, SendTimeout = TimeSpan.FromMinutes(30), ReaderQuotas = XmlDictionaryReaderQuotas.Max, Namespace = "http://www.networkedplanet.com/schemas/brightstar" }; serviceHost.AddServiceEndpoint(typeof(IBrightstarClusterManagerService), basicHttpBinding, ""); serviceHost.AddServiceEndpoint(typeof(IBrightstarClusterManagerService), netTcpContextBinding, ""); serviceHost.AddServiceEndpoint(typeof(IBrightstarClusterManagerService), netNamedPipeBinding, ""); var throttlingBehavior = new ServiceThrottlingBehavior { MaxConcurrentCalls = int.MaxValue }; serviceHost.Description.Behaviors.Add(new ServiceMetadataBehavior { HttpGetEnabled = true }); serviceHost.Description.Behaviors.Add(throttlingBehavior); serviceHost.Closed += StopNode; return serviceHost; }
internal static new bool TryCreate(BindingElementCollection bindingElements, out Binding binding) { if (bindingElements == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements"); } binding = null; ContextBindingElement contextBindingElement = bindingElements.Find <ContextBindingElement>(); if (contextBindingElement != null && contextBindingElement.ContextExchangeMechanism != ContextExchangeMechanism.HttpCookie) { BindingElementCollection bindingElementsWithoutContext = new BindingElementCollection(bindingElements); bindingElementsWithoutContext.Remove <ContextBindingElement>(); Binding netTcpBinding; if (NetTcpBinding.TryCreate(bindingElementsWithoutContext, out netTcpBinding)) { NetTcpContextBinding contextBinding = new NetTcpContextBinding((NetTcpBinding)netTcpBinding); contextBinding.ContextProtectionLevel = contextBindingElement.ProtectionLevel; contextBinding.ContextManagementEnabled = contextBindingElement.ContextManagementEnabled; binding = contextBinding; } } return(binding != null); }
/// <summary> /// Initialises and returns a new NetTcp service client. This client should be used when the client is on a separate machine from the service. /// </summary> /// <param name="endpointUri">The uri where the NetTcp endpoint is running. By default this is net.tcp://{machinename}:8095/brightstar</param> /// <param name="queryCache">OPTIONAL : the cache to use for query results</param> /// <returns>A new brightstar service client. It is important to call dispose on the client after use.</returns> internal static IBrightstarService GetNetTcpClient(Uri endpointUri, ICache queryCache = null) { var binding = new NetTcpContextBinding { MaxReceivedMessageSize = Int32.MaxValue, SendTimeout = TimeSpan.FromMinutes(30), TransferMode = TransferMode.StreamedResponse, ReaderQuotas = XmlDictionaryReaderQuotas.Max }; var endpointAddress = new EndpointAddress(endpointUri); var client = new BrightstarServiceClient(new BrightstarWcfServiceClient(binding, endpointAddress), queryCache); return client; }
public static Binding Resolve(WcfBindingTypes type) { Binding binding = null; switch (type) { case WcfBindingTypes.BasicHttpBinding: binding = new BasicHttpBinding(); break; case WcfBindingTypes.NetTcpBinding: binding = new NetTcpBinding(); break; case WcfBindingTypes.NetTcpContextBinding: binding = new NetTcpContextBinding(); break; case WcfBindingTypes.WsHttpBinding: binding = new WSHttpBinding(); break; case WcfBindingTypes.NetMsmqBinding: binding = new NetMsmqBinding(); break; case WcfBindingTypes.NetPeerTcpBinding: binding = new NetPeerTcpBinding(); break; case WcfBindingTypes.BasicHttpContextBinding: binding = new BasicHttpContextBinding(); break; case WcfBindingTypes.WSHttpContextBinding: binding = new WSHttpContextBinding(); break; case WcfBindingTypes.WS2007FederationHttpBinding: binding = new WS2007FederationHttpBinding(); break; case WcfBindingTypes.WS2007HttpBinding: binding = new WS2007HttpBinding(); break; case WcfBindingTypes.NetNamedPipeBinding: binding = new NetNamedPipeBinding(); break; case WcfBindingTypes.WSFederationHttpBinding: binding = new WSFederationHttpBinding(); break; case WcfBindingTypes.WSDualHttpBinding: binding = new WSDualHttpBinding(); break; default: binding = new CustomBinding(); break; } return binding; }
internal static new bool TryCreate(BindingElementCollection bindingElements, out Binding binding) { if (bindingElements == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements"); } binding = null; ContextBindingElement contextBindingElement = bindingElements.Find<ContextBindingElement>(); if (contextBindingElement != null && contextBindingElement.ContextExchangeMechanism != ContextExchangeMechanism.HttpCookie) { BindingElementCollection bindingElementsWithoutContext = new BindingElementCollection(bindingElements); bindingElementsWithoutContext.Remove<ContextBindingElement>(); Binding netTcpBinding; if (NetTcpBinding.TryCreate(bindingElementsWithoutContext, out netTcpBinding)) { NetTcpContextBinding contextBinding = new NetTcpContextBinding((NetTcpBinding)netTcpBinding); contextBinding.ContextProtectionLevel = contextBindingElement.ProtectionLevel; contextBinding.ContextManagementEnabled = contextBindingElement.ContextManagementEnabled; binding = contextBinding; } } return binding != null; }
internal static bool TryCreate(BindingElementCollection bindingElements, out Binding binding) { if (bindingElements == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElements"); } binding = null; ContextBindingElement element = bindingElements.Find<ContextBindingElement>(); if ((element != null) && (element.ContextExchangeMechanism != ContextExchangeMechanism.HttpCookie)) { Binding binding2; BindingElementCollection elements = new BindingElementCollection(bindingElements); elements.Remove<ContextBindingElement>(); if (NetTcpBinding.TryCreate(elements, out binding2)) { NetTcpContextBinding binding3 = new NetTcpContextBinding((NetTcpBinding) binding2) { ContextProtectionLevel = element.ProtectionLevel, ContextManagementEnabled = element.ContextManagementEnabled }; binding = binding3; } } return (binding != null); }