ApplicationInstance.Default.Start takes very long

Questions regarding the use of the .NET SDK 2.0 for Server or Client development or integration into customer products ...

Moderator: uasdknet

Post Reply
kepplermartin
Jr. Member
Jr. Member
Posts: 1
Joined: 21 May 2025, 15:00

ApplicationInstance.Default.Start takes very long

Post by kepplermartin »

We implemented a OPC UA Server and used it with .Net6 SDK 3.3.1.
Now the project gets a refactoring. So we upgraded to .Net9.
First step was only upgrading .Net. Later we also upgraded SDK to 4.0.0 and also tried with .Net8.

code snippet of Start():

Code: Select all

            ProcessMasterServerManager processMasterServerManager = (ProcessMasterServerManager)ApplicationHost.Services.GetRequiredService<IEquipmentServer>();
            processMasterServerManager.ServerStarted += ProcessMasterServerManager_ServerStarted;
            processMasterServerManager.ServerStopped += ProcessMasterServerManager_ServerStopped;
            processMasterServerManager.UntrustedUserCertificate += ProcessMasterServerManager_UntrustedUserCertificate;
            ApplicationInstance.Default.SetApplicationSettings(configureOpcUaApplicationFromCode(((OpcBaseAddress)Arguments.GetArgumentByType<OpcBaseAddress>()).BaseAddress));
            ApplicationInstance.Default.AutoCreateCertificate = true;          
            ApplicationInstance.Default.Start(processMasterServerManager, null, processMasterServerManager);
Behavior:
after ApplicationInstance.Default.Start(processMasterServerManager, null, processMasterServerManager); is called, execution takes more then 2 minutes till ServerStarted is called. Server is also not seen in UAExpert Discovery.
Sometimes it tooks much longer than 10 minutes. Only few times it took some seconds ~ 5 sec.

Here we have a log:
Timestamp|ThreadId|ModuleId|TraceLevel|Message|Exception
...
13:55.54|0021|00|0|License: ***VALID*** UaSdkNetBundle-4.0.0-Win32-Binary - ClientSDK enabled - ServerSDK enabled
13:55.59|0021|01|5|=> ApplicationInstanceBase.Start
13:55.59|0021|01|7|=> Calling ProcessCommand
...
13:55.59|0021|01|7|=> Application.GetApplicationCertificate
13:55.59|0021|01|7|=> Application.TryGetCertificate
13:55.59|0021|01|4|Start load certificate from store: %CommonApplicationData%\WitzenmannGmbH\ProcessMasterServer\pki\own
13:55.59|0021|01|4|Load Certificate by SubjectName: CN=ProcessMasterServer/O=WitzenmannGmbH/DC=0.0.0.0 from Store:
...
13:55.59|0021|01|4|End load certificate from store
13:55.59|0021|01|5|=> Application.CreateCertificate
...
13:55.59|0021|01|7|=> Application.InitializeServerEndpoints
13:55.59|0021|01|4|Using IP Address from key value pair IP-Adresse=127.0.0.1
13:55.59|0021|01|4|Added Endpoint (None): opc.tcp://127.0.0.1:4841/ [None:None:Binary]
13:55.59|0021|01|7|<= Application.InitializeServerEndpoints.
13:55.59|0021|02|5|=> ServerManager.Start
13:55.59|0021|01|5|=> ServerBase.Start
13:55.59|0021|02|7|=> ServerManager.OnServerStarting
...
13:56.00|0021|02|8|=> BaseNodeManager.ReadInMemoryNode([NodeAttributeHandle] i=2294
13:56.00|0021|02|8|<= BaseNodeManager.ReadInMemoryNode([NodeAttributeHandle] i=2294
13:56.00|0021|02|7|<= ServerManager.OnServerStarting
13:56.00|0021|01|8|Binding NetworkInterface socket to: 127.0.0.1
13:56.04|0057|04|7|=> DoSessionCleanup()
13:56.04|0057|04|7|<= DoSessionCleanup()
13:56.06|0059|04|7|=> DoSessionCleanup()
13:56.06|0059|04|7|<= DoSessionCleanup()
13:56.08|0061|04|7|=> DoSessionCleanup()
13:56.08|0061|04|7|<= DoSessionCleanup()
13:56.10|0063|04|7|=> DoSessionCleanup()
13:56.10|0063|04|7|<= DoSessionCleanup()
13:56.12|0065|04|7|=> DoSessionCleanup()
... more DoSessionCleanup() till it is started
13:58.10|0021|01|4|No configured reverse connections for opc.tcp://127.0.0.1:4841/ found
13:58.10|0021|01|5|<= ServerBase.Start

Has anybody an idea how to fix that, without going back to .Net6?
Application is WPF
We're using dependency injection out of Microsoft.Extensions.

User avatar
Support Team
Hero Member
Hero Member
Posts: 3277
Joined: 18 Mar 2011, 15:09

Re: ApplicationInstance.Default.Start takes very long

Post by Support Team »

Hi,

this indeed looks quite strange. The startup time should of course be much faster. Even though it may or may not be related to the .NET version you use please check which version of SDK supports which version of .NET (we typically consider the LTS versions only, hence .NET6 and .NET8). That said we never experience such issue, but we never tested the SDK on .NET9. (https://documentation.unified-automation.com/uasdknet/4.2.0/html/L1_SupportedPoliciesFrameworks.html)

However, to investigate this in more detail, please create support ticket via support form and send (zipped) trace file containing the startup phase.
https://webdav.unifiedautomation.com/support/support_form.html
Best regards
Unified Automation Support Team

Post Reply