I get once in a while Timeout exception:
OpcLabs.EasyOpc.OperationModel.OpcException: An OPC operation failure with error ID 'RawEasyDAClient.HResult=0xC004C010' occurred, originating from '' and with depth of 1. The inner exception contains details about the problem. ---> System.TimeoutException: Write not completed. This error indicates that it could not be verified that the requested write operation was completed during the timeout period. It is possible that the write operation will actually succeed or fail, but later. Increase the timeout period if you want to obtain positive or negative indication of the operation outcome. Other reason for this error may be that under heavy loads, topic request or response queue is overflowing. Check the event log for queue overflow errors (if event logging is supported by the product and enabled).
+ The client method called (or event/callback invoked) was 'WriteMultipleItemValues[1]'.
I tried these settings just for sanity check, but it didn't work:
EasyDAClient.SharedParameters.TopicParameters.TopicRetrialDelay = 0;
_opcClient = new EasyDAClient();
_opcClient.InstanceParameters.Mode.AllowAsynchronousMethod = false;
_opcClient.InstanceParameters.Mode.DesiredMethod = OpcLabs.EasyOpc.DataAccess.Engine.DAReadWriteMethod.Synchronous;
_opcClient.InstanceParameters.Timeouts.BrowseAccessPaths = int.MaxValue;
_opcClient.InstanceParameters.Timeouts.BrowseNodes = int.MaxValue;
_opcClient.InstanceParameters.Timeouts.BrowseProperties = int.MaxValue;
_opcClient.InstanceParameters.Timeouts.BrowseServers = int.MaxValue;
_opcClient.InstanceParameters.Timeouts.GetProperty = int.MaxValue;
_opcClient.InstanceParameters.Timeouts.ReadItem = int.MaxValue;
_opcClient.InstanceParameters.Timeouts.WriteItem = int.MaxValue;
Maybe there are some issues with DCOM? According to
this
post, there is a way to analyze OPC communication? How do I download it?
I also noticed that I've never received such timeout when using .NET Core.