protected override void ProcessRecord() { base.ProcessRecord(); try { client?.Dispose(); int timeout = GetPreferredTimeout(); WriteDebug($"Cmdlet Timeout : {timeout} milliseconds."); client = new AnnouncementClient(AuthProvider, new Oci.Common.ClientConfiguration { RetryConfiguration = retryConfig, TimeoutMillis = timeout, ClientUserAgent = PSUserAgent }); string region = GetPreferredRegion(); if (region != null) { WriteDebug("Choosing Region:" + region); client.SetRegion(region); } if (Endpoint != null) { WriteDebug("Choosing Endpoint:" + Endpoint); client.SetEndpoint(Endpoint); } } catch (Exception ex) { TerminatingErrorDuringExecution(ex); } }
private void btnBye_Click(object sender, EventArgs e) { AnnouncementClient client = AnnouncementClient(); client.AnnounceOffline(GetAnnouncementSettings()); client.Close(); }
public AnnouncementController(IOptions <AnnouncementsApiUrl> apiConfig, IUrlHelper urlHelper, AnnouncementClient announcementClient, IHostingEnvironment hostingEnvironment) { _apiConfig = apiConfig; _urlHelper = urlHelper; _announcementClient = announcementClient; _hostingEnvironment = hostingEnvironment; }
AnnouncementClient AnnouncementClient() { AnnouncementClient anouncementClient; UdpAnnouncementEndpoint endpoint = new UdpAnnouncementEndpoint(SelectedVersion); anouncementClient = new AnnouncementClient(endpoint); return(anouncementClient); }
public void Open(string announcementConnectionUri, int announcementTimerSec, bool enableAnnouncement) { try { ServiceDiscoveryBehavior serviceDiscoveryBehavior = new ServiceDiscoveryBehavior(); EndpointDiscoveryBehavior endpointDiscoveryBehavior = new EndpointDiscoveryBehavior(); XElement endpointMetadata = new XElement("Root", new XElement(_metaDataElement, _metaDataElementValue)); XElement aliasMetadata = new XElement("Root", new XElement(_metaDataAlias, _metaDataAliasValue)); XElement LoginMetadata = new XElement("Root", new XElement(_metaDataLogIn, _metaDataLogInValue)); endpointDiscoveryBehavior.Extensions.Add(endpointMetadata); endpointDiscoveryBehavior.Extensions.Add(aliasMetadata); endpointDiscoveryBehavior.Extensions.Add(LoginMetadata); _netTcpEndpoint.Behaviors.Add(endpointDiscoveryBehavior); _serviceHost.Description.Behaviors.Add(serviceDiscoveryBehavior); _serviceHost.AddServiceEndpoint(new UdpDiscoveryEndpoint()); _serviceHost.Open(); if (enableAnnouncement) { Uri announcementEndpointUri = new Uri(announcementConnectionUri); EndpointAddress announcementEndpointAddress = new EndpointAddress(announcementEndpointUri); NetTcpBinding binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.None; _announcementEndpoint = new AnnouncementEndpoint(binding, announcementEndpointAddress); _announcementClient = new AnnouncementClient(_announcementEndpoint); _endpointDiscoveryMetadata = EndpointDiscoveryMetadata.FromServiceEndpoint(_netTcpEndpoint); //Start a timer that send announcement message _announcementTimer = new Timer(announcementTimerSec * 1000); _announcementTimer.AutoReset = true; _announcementTimer.Elapsed += new ElapsedEventHandler(_announcementTimer_Elapsed); _announcementTimer.Start(); _announcementClient.Open(); } IsRunning = true; } catch (EndpointNotFoundException ex) { //this error occurs when announcement endpoint is not on the network } catch (CommunicationException ex) { _serviceHost.Abort(); // customize this exception to be more specific throw; } }
public void AnnonceOnlineOfflineNoBinding() { var ac = new AnnouncementClient(new AnnouncementEndpoint() { Address = new EndpointAddress("http://localhost:37564") }); var edm = new EndpointDiscoveryMetadata(); ac.AnnounceOnline(edm); // attempt to close the client causes another CommunicationObjectFaultedException - looks like it fails to allow Close() at faulted state unlike other objects. }
public void DefaultValues() { // default constructor causes IOE unless there is default configuration... var ac = new AnnouncementClient(new AnnouncementEndpoint()); Assert.AreEqual(ac.ChannelFactory.Endpoint, ac.Endpoint, "#1"); Assert.AreEqual("http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01", ac.Endpoint.Contract.Namespace, "#2"); Assert.AreEqual(2, ac.Endpoint.Contract.Operations.Count, "#2-2"); Assert.IsTrue(ac.Endpoint.Contract.Operations.Any(od => od.Messages.Any(md => md.Action == "http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/Hello")), "#2-3"); Assert.IsTrue(ac.Endpoint.Contract.Operations.Any(od => od.Messages.Any(md => md.Action == "http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/Bye")), "#2-4"); Assert.IsNull(ac.Endpoint.Binding, "#3"); Assert.IsNull(ac.Endpoint.Address, "#4"); }
public void AnnonceOnlineOfflineNoEndpointAddress() { var ac = new AnnouncementClient(new AnnouncementEndpoint() { Binding = new BasicHttpBinding() }); var edm = new EndpointDiscoveryMetadata(); try { ac.AnnounceOnline(edm); } finally { ac.Close(); } }
public void AnnonceOnlineOfflineAddressSchemeMismatch2() { var ac = new AnnouncementClient(new AnnouncementEndpoint() { Binding = new BasicHttpBinding(), Address = new EndpointAddress("soap.udp://localhost:37564") }); var edm = new EndpointDiscoveryMetadata(); try { ac.AnnounceOnline(edm); } finally { ac.Close(); } }
// looks like EndpointAddress is *ignored* public void AnnonceOnlineOfflineAddressSchemeMismatch() { var ac = new AnnouncementClient(new UdpAnnouncementEndpoint() { Address = new EndpointAddress("http://localhost:37564") }); var edm = new EndpointDiscoveryMetadata(); try { ac.AnnounceOnline(edm); ac.AnnounceOffline(edm); } finally { ac.Close(); } }
public void AnnonceOnlineOfflineHttpMessageVersionMismatch() { var ac = new AnnouncementClient(new AnnouncementEndpoint() { Binding = new BasicHttpBinding() { SendTimeout = TimeSpan.FromSeconds(10), ReceiveTimeout = TimeSpan.FromSeconds(10) }, Address = http_address }); var edm = new EndpointDiscoveryMetadata(); try { ac.AnnounceOnline(edm); } finally { ac.Close(); } }
public void AnnonceOnlineOfflineHttpWSA10() { var binding = new CustomBinding(new HttpTransportBindingElement()) { SendTimeout = TimeSpan.FromSeconds(10), ReceiveTimeout = TimeSpan.FromSeconds(10) }; var ac = new AnnouncementClient(new AnnouncementEndpoint() { Binding = binding, Address = http_address }); var edm = new EndpointDiscoveryMetadata(); try { ac.AnnounceOnline(edm); } finally { ac.Close(); } }
private void _announcementTimer_Elapsed(object sender, ElapsedEventArgs e) { try { _announcementClient.AnnounceOnline(_endpointDiscoveryMetadata); } catch (EndpointNotFoundException ex) { //this error occurs when announcement endpoint is not on the network } catch (CommunicationException ex) { _announcementClient.InnerChannel.Abort(); _announcementClient = new AnnouncementClient(_announcementEndpoint); } catch (Exception exp) { } }
public static Task AnnounceOnlineTaskAsync(this AnnouncementClient source, EndpointDiscoveryMetadata discoveryMetadata) { return(Task.Factory.FromAsync <EndpointDiscoveryMetadata>(new Func <EndpointDiscoveryMetadata, AsyncCallback, object, IAsyncResult>(source.BeginAnnounceOnline), new Action <IAsyncResult>(source.EndAnnounceOnline), discoveryMetadata, null)); }