Professional OPC
Development Tools

logos

'System.Runtime.InteropServices.SEHException while browsing OPC Server nodes

More
13 Feb 2016 13:00 #3854 by support
One more thing: Please make sure you build with the very latest QuickOPC version and build (at this moment, build 5.35.442.1, as posted on this site under Downloads). There is a specific fix inside, for a bug that can appear under 64-bit systems with browsing - it can be your problem, too.

Please Log in or Create an account to join the conversation.

More
11 Feb 2016 15:47 #3840 by support
We have a similar report from another customer, but were unable to reproduce it so far. He is in the process of sending us a virtual machine image that has the reproducible scenario "in it". It appears to be related to which other OPC software is installed on the machine. If it is the same problem, yours will get fixed too. I should know more next week, when we get and run the VM.

It would be the same problem, however, only if it ONLY affects the OPC browsing. I still could not tell from your answer whether that's the fact or not, and it is very important. If you try our Demo application, and do *not* press any of the Browse buttons, and simply press Read or Subscribe, does it work?

Some additional notes:
1. Our demo apps are, however, compiled for AnyCPU.
2. While it should work as well, it is not clear to me why you want to compile for x64. My understanding is that with the current implementation of the C# compiler, the only difference is in the setting some flags in the executable, which, for x64, make it impossible to run in 32-bit mode (see e.g. stackoverflow.com/questions/11062028/performance-of-a-c-shar...pu-vs-x64-platform-on-a-64-bit ). But AnyCPU will be JITted to 64-bit code on 64-bit systems.

Best regards

Please Log in or Create an account to join the conversation.

  • Alexander
  • Topic Author
  • Visitor
  • Visitor
11 Feb 2016 14:16 #3838 by Alexander
We use the BrowseNodes method as the very first OPCLabs call in our application to determine the item identifiers on the OPC server, in order then to subscribe them.

We do not get to this, because the application exits with the exception described above.

What we did determine additionally is that the OPCLabs test tools also do not work. This was for us an indication not to proceed.

Here some additional information for you:
  • The exception above accurs if we build our DLLs for the x64 platform (Visual Studio 2012, Configuration Manager).
  • On the other hand this exception does not occur if we build our DLLs for the AnyCPU platform.
The AnyCPU platform is for us sort of workaround. We require to run OPCLabs on the x64 platform.

Please Log in or Create an account to join the conversation.

More
11 Feb 2016 10:47 #3837 by support
Other operations, such as reading, writing or subscription, appear to be working?

Thanks

Please Log in or Create an account to join the conversation.

  • Alexander
  • Topic Author
  • Visitor
  • Visitor
11 Feb 2016 10:42 #3836 by Alexander
Hello,

many thanks for you quick reply.

We have run the QuickOPC setup program on that computer. That is the way we install QuickOPC on all our target computers generally.

Regards

Alexander

Please Log in or Create an account to join the conversation.

More
11 Feb 2016 10:39 #3835 by support
Hello.

A question: How was the application installed on that computer? Specifically, is that your own deployment procedure, or have you run the QuickOPC setup program on that computer?

Thank you

Please Log in or Create an account to join the conversation.

  • Alexander
  • Topic Author
  • Visitor
  • Visitor
11 Feb 2016 05:45 #3832 by Alexander
We experience an issue while browsing OPC Server nodes. We get the System.Runtime.InteropServices.SEHException while calling the BrowseNodes method. System environment and the exception trace are given below.
Please can you assist us in resolving this issue.

Many thanks.


The system environment

Windows 7, sp1, 64bit, Intel Core i7
Opc Labs – QuickOPC 5.3

OPC Server – Bachmann M1OPC Standard Server v2.20 (DA)
Supported Interfaces:
IOPCServer – 1.x, 2.x, 3.x
IPersistsFile - 1.x, 2.x, 3.x
IOPCBrowseServerAddressSpace - 1.x, 2.x
IOPCServerPublicGroup – not supported
IOPCItemProperties – 2.x
IOPCCommon – 2.x, 3.x
IConnectionPointContainer– 2.x, 3.x
IOPCBrowse – 3.x
IOPCItemIO – 3.x


The Exception Trace

Message: HandlingInstanceID: 8e470e21-d8d3-44e9-ae4f-ca3095fad12f
An exception of type 'System.Runtime.InteropServices.SEHException' occurred and was caught.
02/10/2016 14:59:40
Type : System.Runtime.InteropServices.SEHException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : External component has thrown an exception.
Source : OpcLabs.EasyOpcClassicRaw.amd64
Help link :
ErrorCode : -2147467259
Data : System.Collections.ListDictionaryInternal
TargetSite : Void OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine.ExecuteAlgorithm(OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine*, CSynchronizedAlgorithm*)
HResult : -2147467259
Stack Trace : at OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine.ExecuteAlgorithm(CDAInnerEngine* , CSynchronizedAlgorithm* Algorithm)
at CEDAAbstractEngine.BrowseNodes(CEDAAbstractEngine* , Char* MachineName, Char* ClientIsolator, Char* ServerClass, CStringListPlus* pParentPath, Char* ParentItemID, Char* NameFilter, Char* VendorFilter, UInt16 DataTypeFilter, UInt32 AccessRightsFilter, tagOPCBROWSEFILTER BrowseFilter, CEDAAbstractMode* pMode, COCKNodeElementMap* NodeElementMap)
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.InternalBrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DANodeFilter nodeFilter)
at OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DANodeFilter nodeFilter)
at OpcLabs.EasyOpc.DataAccess.DelegatingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DANodeFilter nodeFilter)
at OpcLabs.EasyOpc.DataAccess.CompositeEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DANodeFilter nodeFilter)
at OpcLabs.EasyOpc.DataAccess.DelegatingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DANodeFilter nodeFilter)
at OpcLabs.EasyOpc.DataAccess.LicensingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DANodeFilter nodeFilter)
at OpcLabs.EasyOpc.DataAccess.DelegatingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DANodeFilter nodeFilter)
at OpcLabs.EasyOpc.DataAccess.DelegatingEasyDAClient.BrowseNodes(ServerDescriptor serverDescriptor, DANodeDescriptor parentNodeDescriptor, DANodeFilter nodeFilter)
at OpcLabs.EasyOpc.DataAccess.IEasyDAClientExtension.BrowseNodes(IEasyDAClient easyDAClient, String machineName, String serverClass, String parentItemId, DANodeFilter nodeFilter)

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.191 seconds

      

 Recommend this on Google