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.
Reconnecting after server close connecion

Best regards
Please Log in or Create an account to join the conversation.
I use Nodedescriptor attribute that Mapper create in my object.
For example: When I need to write part of this object I use mapper.client.WriteValue(NodeDescriptor, ...).
As you write, i remove code for reconnecting and it WORKS.
Thanks for help
Please Log in or Create an account to join the conversation.
First of all, why are you combining the Live Mapping model with procedural calls (explicit Subscribe-s and Unsubscribe-s)?
And, are you actually using the Live Mapping for anything? (I do not see any such code posted).
I cannot determine what's wrong without knowing what are you actually trying to achieve, but here are some facts worth knowing:
- Reconnections are handled automatically. No code should be needed for that. If you feel that it does not work, or does not work well, then you need to begin explaining the behavior and the needs starting from the state where you have no extra reconnection logic.
- It is certainly incorrect to call UnsubscribeAllMonitoredItems on the client object that is used by the mapper, especially if the mapper is actually in use for something. That would seriously collide with internal operation of the mapper.
Regards
Please Log in or Create an account to join the conversation.
I have a problem with reconnecting. I use in my .Net application construction like this:
ObjectDataPathAsString = "[ObjectsFolder]/" + PlcName + PartialObjectPath; //
OpcUaBrowsePath = OpcLabs.EasyOpc.UA.Navigation.UABrowsePath.Parse(ObjectDataPathAsString, " www.siemens.com/simatic-s7-opcua ");
this.OpcMapper.Map(OpcObject, new UAMappingContext()
{
EndpointDescriptor = EndpointDescriptor, // the OPC server
NodeDescriptor = new UANodeDescriptor // complex node
{
BrowsePath = OpcUaBrowsePath
},
MonitoringParameters = this.ReadUpdateTime, // requested sampling interval
});
if (CallBackMethodRef != null)
{
OpcMapper.SubscribeTarget(iSubscribe, this.OpcObject, ObjectDataPathAsString, false);
ObjectChangedHandle = OpcMapper.Client.SubscribeDataChange(EndpointDescriptor, OpcUaBrowsePath, ReadUpdateTime, CallBackMethodRef);
}
After success subscription and any opperation on OPC-UA server side the server close the connection and i get exception:
OPC-UA service result - An error specific to OPC-UA service occurred.
---- SERVICE RESULT ----
StatusCode: {BadSecureChannelClosed} = 0x80860000 (2156265472)
Description: BadSecureChannelClosed
AdditionalInfo: >>> BadSecureChannelClosed
--- at Opc.Ua.Bindings.TcpAsyncOperation`1.End(Int32 timeout)
--- at Opc.Ua.Bindings.TcpClientChannel.EndSendRequest(IAsyncResult result)
--- at Opc.Ua.SessionClient.EndPublish(IAsyncResult result, UInt32& subscriptionId, UInt32Collection& availableSequenceNumbers, Boolean& moreNotifications, NotificationMessage& notificationMessage, StatusCodeCollection& results, DiagnosticInfoCollection& diagnosticInfos)
--- at Opc.Ua.Client.Session.OnPublishComplete(IAsyncResult result)
StatusCode: {BadTcpInternalError} = 0x80820000 (2156003328)
Description: An existing connection was forcibly closed by the remote host
StatusCode: {Bad} = 0x80000000 (2147483648)
Description: An existing connection was forcibly closed by the remote host
AdditionalInfo: >>> An existing connection was forcibly closed by the remote host
--- at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
--- at Opc.Ua.Bindings.TcpMessageSocket.DoReadComplete(IAsyncResult result)
--- at Opc.Ua.Bindings.TcpMessageSocket.OnReadComplete(IAsyncResult result)
---- REMARKS ----
The server may have rejected the connection because it does not trust the client (e.g. certificate problem); check the diagnostics on the server side, if possible.
After this exception is called this Method on Mapper:
this.OpcMapper.Client.UnsubscribeAllMonitoredItems();
and after some time Is aggain called code above (map and subscribe) but it not works.
I Use .NET 4.6.2, Target x64.
What is correct way for recconecting? Or what is Wrong in my code?
Thanks for response.
Please Log in or Create an account to join the conversation.