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
- General Issues, Building
- Opc.Ua.Bindings.TcpAsyncOperation.OnTimeout(System.Object)
Opc.Ua.Bindings.TcpAsyncOperation.OnTimeout(System.Object)
As the problem appears to be related to the OPC Foundation .NET stack ("legacu" - for .NET Framework, github.com/OPCFoundation/UA-.NET-Legacy/issues ) that QuickOPC uses, and also there is no scenario that we can reproduce on our side, I am afraid we cannot do more at the moment. Although anybody can now contribute to the code of the stack, we are not in business of maintaining it - we simply rely on it.
If you could switch to .NET Core, things would look more more promising, because the OPC UA .NET Standard stack is under active development and maintenance. Therefore
- there is a chance that the problem has already been fixed, and
- if not, reporting a problem in the stack (github.com/OPCFoundation/UA-.NETStandard/issues ) would have at least a chance that it will be looked at/investigated (although, reproducible scenario would still be highly needed).
Regards
Please Log in or Create an account to join the conversation.
the problem happened again, attached logrntry for your reference.
Best Regards
Attachments:
Please Log in or Create an account to join the conversation.
Regards
Please Log in or Create an account to join the conversation.
I`m sorry.Actually
it is "Opc.Ua.Bindings.TcpAsyncOperations.OnTimeOut(System.Object)".
The Windows log is the only thing that I can get about this issue so far.
And I will try EasyUAClient.LogEntry Event to find out if we could get more information about that error.
The windows log like this :
exception: System.ObjectDisposedException
Trace:
System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean ByRef)
System.StubHelpers.StubHelpers.SafeHandleAddRef(System.Runtime.InteropServices.SafeHandle, Boolean ByRef)
Microsoft.Win32.Win32Native.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle)
System.Threading.EventWaitHandle.Set()
Opc.Ua.Bindings.TcpAsyncOperation`1System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.InternalComplete(Boolean, System.Object)
Opc.Ua.Bindings.TcpAsyncOperation`1System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.OnTimeout(System.Object)
System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object)
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.TimerQueueTimer.CallCallback()
System.Threading.TimerQueueTimer.Fire()
System.Threading.TimerQueue.FireNextTimers()
System.Threading.TimerQueue.AppDomainTimerCallback()
Best Regards
Please Log in or Create an account to join the conversation.
I do not quite understand where the "OpcUa.Bindings.TcpAsyncOperations.OnTimeOut(System.Object)" comes from. You have stated the contents of the Windows log with the trace, but this method does *not* appear in the trace. So, is it from the same Windows entry - maybe the "OpcUa.Bindings.TcpAsyncOperations.OnTimeOut(System.Object)" is kind of a header, and the trace was in the details? Please explain.
Second, we do not have "OpcUa. ..." namespace in our product. Did you mean "Opc.Ua. ..."?
If the error originated in Opc.Ua.Bindings.*, that would mean it is in the UA stack from OPC Foundation - QuickOPC uses it for the lowe levels of the communication. We take that library as "given", and cannot really fix its problems.
Do you have a handler attached to the (static) EasyUAClient.LogEntry? It might give some interesting information too (have it store the generated entries to a file and make sure they are flushed, so that what happens shortly before the crash is still captured). Specifically, any entries saying "Internal Error" would be of upmost interest.
Regards
Please Log in or Create an account to join the conversation.
Sleepless wrote: Hello
while we upgraded to 5.56, we use "out of box" configuration, the problem occurred after 24 hours, then we changed to "prerequisite boxing " disabled, the program stopped after 48 hours running.
Best Regards
Brad
Please note: the program connects with 60pcs OPC UA server since each machine equipped with one OPC UA server (Kepware, Beckoff Twincat opc server etc)
Please Log in or Create an account to join the conversation.
while we upgraded to 5.56, we use "out of box" configuration, the problem occurred after 24 hours, then we changed to "prerequisite boxing " disabled, the program stopped after 48 hours running.
Best Regards
Brad
Please Log in or Create an account to join the conversation.
Are you running with the "out of the box" configuration, or with the "prerequisite boxing" disabled (as in the earlier suggestion)?
Knowing this would allow me to narrow down the options.
Regards
Please Log in or Create an account to join the conversation.
We have upgraded ther revision from 5.53 to 5.56, 。 netframework revision is 4.7.1,but the problem still exist.
The C# Winform Program to connect to around 60 OpcUa servers which are in different computers.The problem is that When I subscribe to ~3 hundreds of tags by using the SubscribeMultipleMonitoredItems() , considering the number of the events ,so I use callback methods to handle these events.
But then a serious error comes out and I just could not catch it ,which windows error log shows that it happens at OpcUa.Bindings.TcpAsyncOperations.OnTimeOut(System.Object).Cause it does not reflect my error in my code (I can not debug this out) , I wanna know how it happened and whether it is internal error in your tools.
The windows log like this :
exception: System.ObjectDisposedException
Trace:
System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean ByRef)
System.StubHelpers.StubHelpers.SafeHandleAddRef(System.Runtime.InteropServices.SafeHandle, Boolean ByRef)
Microsoft.Win32.Win32Native.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle)
System.Threading.EventWaitHandle.Set()
[link removed] mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.InternalComplete(Boolean, System.Object)
[link removed] mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.OnTimeout(System.Object)
System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object)
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.TimerQueueTimer.CallCallback()
System.Threading.TimerQueueTimer.Fire()
System.Threading.TimerQueue.FireNextTimers()
System.Threading.TimerQueue.AppDomainTimerCallback()
Please review it again
Best regards
Please Log in or Create an account to join the conversation.
5.53 ("external" version label 2018.2) was one of the version where the original reporters had this problem. And, it appears that it was resolved using one of the two approaches, both of which are mentioned&described in the preceding posts:
- disabling the "prerequisites boxing" in version 5.53 or earlier (link is provided below too), OR
- upgrading to version 5.54 (QuickOPC 2018.3).
Best regards
Please Log in or Create an account to join the conversation.
- Forum
- Discussions
- QuickOPC-UA in .NET
- General Issues, Building
- Opc.Ua.Bindings.TcpAsyncOperation.OnTimeout(System.Object)