Professional OPC
Development Tools

logos

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.

System.Runtime.InteropServices.SEHException in RawEasyDAClient

More
05 Nov 2018 09:30 #6825 by support
I do not think the second option (destroying the instance) would work, because it would invoke the same code that causes the problem. So please try the first approach (with the static EasyDAClient).

Best regards

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

More
04 Nov 2018 15:31 #6821 by PLARAC
Hi, Thanks for the response.

For response 1#:

I tested the app and your assumption is right. As I said, this is an ASP.NET MVC project and the user need to check the values of some tags in a one shoot call (Just a one shoot per event), so for each click event, I create an EasyDAClient and read multiple values of some tags, by the end of the ActionResult, the values are displayed in a modal. That's all. So for now I have two options, the first is to pass the EasyDAClient to static, check if the var was instanced and test the app. The second option is destroy the instance of EasyDAClient to be sure that the instance is not created (With wich code can I destroy the instance?)

For response 2#: Tested in 64bit, but same results.
For response 3#: I be wainting for the new version.

Thanks for your helps, I will post the results.
:)

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

More
01 Nov 2018 09:41 #6810 by support
Hello,

this may be a bug somewhere in the EasyDAClient parts that are written in managed C++. Unfortunately, I have no idea how to resolve unless we get a simple reproducible scenario that we can run and debug here.

Saying that, though, there are some (wild) ideas to experiment with:

1. Somewhat to the contrary you found, the exception appears to be related to the destruction of the (last) EasyDAClient, not to its construction. As an attempt for workaround, try to keep at least one EasyDAClient instance around for the lifetime of your app, if that's doable (and, do not explicitly dispose of them).

2. The particular exception trace you sent indicates that the component is running in a 32-bit process. If you have a 64-bit machine, configure the ASP.NET so that a 64-bit process is used, to see if that helps.

3. We should have a new version coming out in approx. 2 weeks or less. There was no fix specifically addressing this issue, but there is always a chance that it would behave better. Have a look at our Web site in 2 weeks and try QuickOPC 2018.3.

Best regards

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

More
31 Oct 2018 13:37 - 31 Oct 2018 13:40 #6808 by PLARAC
Hi, I'm using the version 2018.2 of Quick OPC (5.53.405.1) in a ASP.NET MVC 5 application with framework 4.5.2. The problem is I'm facing some strange problem. In debug mode I run the solution and after 5 or 7 minutes I get a SEHException in my code when
EasyDAClient client = new EasyDAClient();
is fired. This is weird, because I have another ASP.NET application but in MVC 4, running at the same time, with almost the same code and this exception didn't happen. Can you help me please? The assemblies in both projects are OpcLabs.EasyOpcClassic and OpcLabs.BaseLib.

This is the exception

System.Transactions Critical: 0 : <TraceRecord xmlns="schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical">msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledExcepción no controlada/LM/W3SVC/2/ROOT-1-131854678805846913System.Runtime.InteropServices.SEHException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Un componente externo produjo una excepción. en AfxThrowInvalidArgException()
en CBasicWorkerThread.{dtor}(CBasicWorkerThread* )
en CEasyAbstractEngine.{dtor}(CEasyAbstractEngine* )
en CEDAAbstractEngine.{dtor}(CEDAAbstractEngine* )
en OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine.{dtor}(CDAInnerEngine* )
en OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine.__vbaseDtor(CDAInnerEngine* )
en OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine.__vecDelDtor(CDAInnerEngine* , UInt32 A_0)
en CEasyAbstractModule.DestroyDAEngine(CEasyAbstractModule* , CEDAAbstractEngine** pDAEngine)
en CEasyAbstractModule.RemoveDAEngine(CEasyAbstractModule* , CEDAAbstractEngine** pDAEngine)
en OpcLabs.EasyOpcRaw.CInnerModule.ReleaseDAEngine(CInnerModule* , CEDAAbstractEngine* pDAEngine)
en OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.!RawEasyDAClient()
en OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.Dispose(Boolean A_0)
en OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.Finalize()</StackTrace><ExceptionString>System.Runtime.InteropServices.SEHException (0x80004005): Un componente externo produjo una excepción.
en AfxThrowInvalidArgException()
en CBasicWorkerThread.{dtor}(CBasicWorkerThread* )
en CEasyAbstractEngine.{dtor}(CEasyAbstractEngine* )
en CEDAAbstractEngine.{dtor}(CEDAAbstractEngine* )
en OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine.{dtor}(CDAInnerEngine* )
en OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine.__vbaseDtor(CDAInnerEngine* )
en OpcLabs.EasyOpcRaw.DataAccess.CDAInnerEngine.__vecDelDtor(CDAInnerEngine* , UInt32 A_0)
en CEasyAbstractModule.DestroyDAEngine(CEasyAbstractModule* , CEDAAbstractEngine** pDAEngine)
en CEasyAbstractModule.RemoveDAEngine(CEasyAbstractModule* , CEDAAbstractEngine** pDAEngine)
en OpcLabs.EasyOpcRaw.CInnerModule.ReleaseDAEngine(CInnerModule* , CEDAAbstractEngine* pDAEngine)
en OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.!RawEasyDAClient()
en OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.Dispose(Boolean A_0)
en OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient.Finalize()</ExceptionString></Exception></TraceRecord>
Excepción no controlada del tipo 'System.Runtime.InteropServices.SEHException' en App_Web_OpcLabs.EasyOpcClassicRaw.x86.dll
Un componente externo produjo una excepción.

Last edit: 31 Oct 2018 13:40 by PLARAC.

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

Moderators: support
Time to create page: 0.052 seconds