From 1287791c4fe9706ca334c5ac4105f3c8b69e916f Mon Sep 17 00:00:00 2001 From: Martin Regen Date: Fri, 11 Nov 2016 16:09:57 +0100 Subject: [PATCH] turn off tracing --- .../Opc.Ua.Publisher.Config.xml | 3 +- .../Opc.Ua.SampleServer.Config.xml | 5 +- .../Samples/NetCoreConsoleServer/Program.cs | 93 +++++++++++++++++-- .../Opc.Ua.Publisher.Endpoints.xml | 32 +++++++ .../Quickstarts.ReferenceServer.Config.xml | 2 - 5 files changed, 122 insertions(+), 13 deletions(-) diff --git a/SampleApplications/Samples/NetCoreConsolePublisher/Opc.Ua.Publisher.Config.xml b/SampleApplications/Samples/NetCoreConsolePublisher/Opc.Ua.Publisher.Config.xml index 06682a623d..8baa544ee3 100644 --- a/SampleApplications/Samples/NetCoreConsolePublisher/Opc.Ua.Publisher.Config.xml +++ b/SampleApplications/Samples/NetCoreConsolePublisher/Opc.Ua.Publisher.Config.xml @@ -509,12 +509,13 @@ Logs/Opc.Ua.Publisher.log.txt true + 0 - 515 + diff --git a/SampleApplications/Samples/NetCoreConsoleServer/Opc.Ua.SampleServer.Config.xml b/SampleApplications/Samples/NetCoreConsoleServer/Opc.Ua.SampleServer.Config.xml index d87c0ec06a..36ee73e467 100644 --- a/SampleApplications/Samples/NetCoreConsoleServer/Opc.Ua.SampleServer.Config.xml +++ b/SampleApplications/Samples/NetCoreConsoleServer/Opc.Ua.SampleServer.Config.xml @@ -95,7 +95,6 @@ http://opcfoundation.org/UA/SecurityPolicy#None 0 - 5 @@ -174,10 +172,11 @@ Logs/Opc.Ua.SampleServer.log.txt true + 0 - 515 + diff --git a/SampleApplications/Samples/NetCoreConsoleServer/Program.cs b/SampleApplications/Samples/NetCoreConsoleServer/Program.cs index 103410bc2d..67f596a470 100644 --- a/SampleApplications/Samples/NetCoreConsoleServer/Program.cs +++ b/SampleApplications/Samples/NetCoreConsoleServer/Program.cs @@ -13,7 +13,9 @@ using Opc.Ua; using Opc.Ua.Configuration; using Opc.Ua.Sample; +using Opc.Ua.Server; using System; +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; @@ -62,6 +64,20 @@ namespace NetCoreConsoleServer { public static void Main(string[] args) { + MySampleServer server = new MySampleServer(); + server.Start(); + } + } + + public class MySampleServer + { + SampleServer server; + Task status; + DateTime lastEventTime; + + public void Start() + { + try { Task t = ConsoleSampleServer(); @@ -83,13 +99,31 @@ namespace NetCoreConsoleServer // wait forever if there is no console Thread.Sleep(Timeout.Infinite); } + + if (server != null) + { + Console.WriteLine("Server stopped. Waiting for exit..."); + + server.Dispose(); + server = null; + + status.Wait(); + } + } + private static void CertificateValidator_CertificateValidation(CertificateValidator validator, CertificateValidationEventArgs e) + { + if (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted) + { + e.Accept = false; + Console.WriteLine("Rejected Certificate: {0}", e.Certificate.Subject); + } } - private static async Task ConsoleSampleServer() + private async Task ConsoleSampleServer() { ApplicationInstance.MessageDlg = new ApplicationMessageDlg(); ApplicationInstance application = new ApplicationInstance(); - + application.ApplicationName = "UA Sample Server"; application.ApplicationType = ApplicationType.Server; application.ConfigSectionName = "Opc.Ua.SampleServer"; @@ -110,17 +144,62 @@ namespace NetCoreConsoleServer } // start the server. - await application.Start(new SampleServer()); + server = new SampleServer(); + await application.Start(server); + + // start the status thread + status = Task.Run(new Action(StatusThread)); + + // print notification on session events + server.CurrentInstance.SessionManager.SessionActivated += EventStatus; + server.CurrentInstance.SessionManager.SessionClosing += EventStatus; + server.CurrentInstance.SessionManager.SessionCreated += EventStatus; + } - private static void CertificateValidator_CertificateValidation(CertificateValidator validator, CertificateValidationEventArgs e) + private void EventStatus(Session session, SessionEventReason reason) { - if (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted) + lastEventTime = DateTime.UtcNow; + PrintSessionStatus(session, reason.ToString()); + } + + void PrintSessionStatus(Session session, string reason, bool lastContact = false) + { + lock (session.DiagnosticsLock) { - e.Accept = false; - Console.WriteLine("Rejected Certificate: {0}", e.Certificate.Subject); + string item = String.Format("{0,9}:{1,20}:", reason, session.SessionDiagnostics.SessionName); + if (lastContact) + { + item += String.Format("Last Event:{0:HH:mm:ss}", session.SessionDiagnostics.ClientLastContactTime.ToLocalTime()); + } + else + { + if (session.Identity != null) + { + item += String.Format(":{0,20}", session.Identity.DisplayName); + } + item += String.Format(":{0}", session.Id); + } + Console.WriteLine(item); } } + private void StatusThread() + { + while (server != null) + { + if (DateTime.UtcNow - lastEventTime > TimeSpan.FromMilliseconds(6000)) + { + IList sessions = server.CurrentInstance.SessionManager.GetSessions(); + for (int ii = 0; ii < sessions.Count; ii++) + { + Session session = sessions[ii]; + PrintSessionStatus(session, "-Status-", true); + } + lastEventTime = DateTime.UtcNow; + } + Thread.Sleep(1000); + } + } } } diff --git a/SampleApplications/Samples/Publisher.Net4/Opc.Ua.Publisher.Endpoints.xml b/SampleApplications/Samples/Publisher.Net4/Opc.Ua.Publisher.Endpoints.xml index 452011680c..dd86db32ea 100644 --- a/SampleApplications/Samples/Publisher.Net4/Opc.Ua.Publisher.Endpoints.xml +++ b/SampleApplications/Samples/Publisher.Net4/Opc.Ua.Publisher.Endpoints.xml @@ -5,6 +5,22 @@ xmlns:ua="http://opcfoundation.org/UA/SDK/Configuration.xsd"> + + + opc.tcp://localhost:61210/UA/SampleClient + SignAndEncrypt_3 + http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15 + + + Anonymous_0 + + + http://opcfoundation.org/UA/profiles/transport/wsxmlorbinary + 0 + + true + 0 + opc.tcp://localhost:61410/UA/Publisher @@ -21,5 +37,21 @@ true 0 + + + opc.tcp://localhost:51210/UA/SampleServer + SignAndEncrypt_3 + http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15 + + + Anonymous_0 + + + http://opcfoundation.org/UA/profiles/transport/wsxmlorbinary + 0 + + true + 0 + \ No newline at end of file diff --git a/SampleApplications/Workshop/Reference/ConsoleReferenceServer/Quickstarts.ReferenceServer.Config.xml b/SampleApplications/Workshop/Reference/ConsoleReferenceServer/Quickstarts.ReferenceServer.Config.xml index 747a9ca050..e9ca0b89a2 100644 --- a/SampleApplications/Workshop/Reference/ConsoleReferenceServer/Quickstarts.ReferenceServer.Config.xml +++ b/SampleApplications/Workshop/Reference/ConsoleReferenceServer/Quickstarts.ReferenceServer.Config.xml @@ -74,7 +74,6 @@ http://opcfoundation.org/UA/SecurityPolicy#None 0 - 5