Online Forums
Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.
Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.
Do not use the Contact page for technical issues.
- Forum
- Discussions
- QuickOPC-UA in .NET
- Reading, Writing, Subscriptions
- How to configure a request timeout in EasyUAClient?
How to configure a request timeout in EasyUAClient?
Note that the pre-release package will now be made unlisted on NuGet. This means that it is still present for download and can still be used, but is not normally viewable, and your projects needs to explicitly reference that version.
Best regards
Please Log in or Create an account to join the conversation.
- servusintra
- Topic Author
- Offline
- Premium Member
- Posts: 11
- Thank you received: 1
This solves our issue. We will now continue our tests and wait for the production-ready release.
Thanks a lot for the great and fast support!
Please Log in or Create an account to join the conversation.
please try the pre-release version 5.62.0-rev6 from www.nuget.org . It should all work there : 2 ways to do the config file, plus there is the OperationTimeout property: kb.opclabs.com/QuickOPC-UA_Timeout_Settings (the link on that page that should point to the reference documentation does not work yet).
Note: I admit we have *not* tested it on Linux yet. This is because we have found that the issues you have reported had actually to do with running under .NET Core/.NET 5+ . So we fixed that and it now works under .NET Core/.NET 5+ in Windows. Linux tests will come further down the road, but hopefully it will work for you already.
Best regards
Please Log in or Create an account to join the conversation.
- servusintra
- Topic Author
- Offline
- Premium Member
- Posts: 11
- Thank you received: 1
We will then wait for version 2021.3 to be released.
Should there be a chance to get an Early Access version, please let us know.
Please Log in or Create an account to join the conversation.
I had a deeper look at this. I can confirm that under Linux, there are problems in both approaches (just with the SDK config file, but also with 2 files). There are different reasons for them, but the end result is that none of them works in version 2021.2.
This should be fully resolved in 2021.3, so 1 file, 2 files, or just the OperationTimeout property - all of that will be there.
Unless the issue is critical for you to be resolved quickly, I'd like you to ask you to wait for version 2021.3. The concrete date is not yet set, though.
Best regards
Please Log in or Create an account to join the conversation.
I will have further look at this. The issue might be related to the fact that "dotnet publish" is used. And, as you pointed out, this means a different name of the executable, as opposed to when ran with "dotnet ConsoleApp.dll".
Best regards
Please Log in or Create an account to join the conversation.
- servusintra
- Topic Author
- Offline
- Premium Member
- Posts: 11
- Thank you received: 1
I named it ConsoleApp.dll.config and gave it the following content:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="UAClientEngine" type="Opc.Ua.ApplicationConfigurationSection,Opc.Ua.Core" />
</configSections>
<UAClientEngine>
<ConfigurationLocation xmlns="http://opcfoundation.org/UA/SDK/Configuration.xsd">
<FilePath>ConsoleApp.config.xml</FilePath>
</ConfigurationLocation>
</UAClientEngine>
</configuration>
Unfortunately that did not work, so I tried with other variants of file names, i.e. with and without the .xml extension, or calling the "pointer file" ConsoleApp.config(.xml), without '.dll', since the executable on linux is "ConsoleApp" only.
In the end it was always the same result. It seems that the configuration file is not detected or cannot be read.
If you have any other suggestions, we will be happy to try them. Otherwise, we will consider waiting until the next release. As soon as the release date is fixed, please let us know.
Please Log in or Create an account to join the conversation.
I have now realized that the documentation mentions the possibility that you can get away with just the second file, precisely as you did. And, that should work on Windows. But it does not currently work on Linux.
The remedy is to use both files, as suggested in my post.
I apologize for any confusion.
Best regards\
Please Log in or Create an account to join the conversation.
In total there should 2 XML configuration files, and you have just the second one them.
The first one should point to the second one - and it is missing.
See kb.opclabs.com/OPC_UA_.NET_SDK_Configuration .
In .NET Framework, it would be named ConsoleApp.exe.config, but because you are under .NET Core, it should be named ConsoleApp.dll.config and placed alongside ConsoleApp.dll.
Best regards
Please Log in or Create an account to join the conversation.
- servusintra
- Topic Author
- Offline
- Premium Member
- Posts: 11
- Thank you received: 1
<PackageReference Include="OpcLabs.QuickOpc" Version="5.61.343" />
2) 3) 4)
We have created an example .NET 5 console application that contains the same configuration as we use in production. With that we could reproduce the error on a Ubuntu machine while on Windows it worked. I've attached ConsoleApp.zip in case you want to test it yourselfs, but will describe the test and it's results here:
1. Created default .NET 5 console application
1.1. Specify configuration for EasyUaClient
private static void SetUpQuickOpc()
{
EasyUAClient.SharedParameters.EngineParameters
.CertificateAcceptancePolicy = UACertificateAcceptancePolicy.TestingInsecure;
EasyUAClient.SharedParameters.EngineParameters.ConfigurationSources = UAConfigurationSources.AppConfig;
EasyUAClient.LogEntry += (_, args) =>
Console.WriteLine($"EasyUAClient message args: {args}");
}
1.3. Execute Read() and log result
2. Published the application (on Windows)
for Windows
dotnet publish .\ConsoleApp.csproj -c Debug -o ./publish
dotnet publish .\ConsoleApp.csproj -c Debug -o ./publish --runtime linux-x64
3. Ran it on both machines
I have attached a file for each test result: Error (Ubuntu).txt, Success(Windows).txt. They contain the detailed log messages of the EasyUaClient.
Please Log in or Create an account to join the conversation.
- Forum
- Discussions
- QuickOPC-UA in .NET
- Reading, Writing, Subscriptions
- How to configure a request timeout in EasyUAClient?