Hi all,
I'm currently looking into setting up remote debugging for our internal development. I already managed to set up the connection to the remote debugger running on our staging system and Visual Studio/DIS is already able to attach to the SLScripting process on the remote DMA. Unfortunately I am getting an error when I try to trigger a QAction via DIS Inject:
Following Output can be found in the DIS - DMAComm Output
2022/03/25 04:54:15.330|> Executing DisTriggerQAction (dmaId: 13002, elementId: 9070, qactionId: 2, triggerPID: 2, rowKey: )
2022/03/25 04:54:15.334|> DataMinerException: (Code: 0x800402DA) Skyline.DataMiner.Net.Exceptions.DataMinerCOMException: An exception has occurred while executing the requested action.
2022/03/25 04:54:15.334|> ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800402DA
2022/03/25 04:54:15.334|>
2022/03/25 04:54:15.335|> Server stack trace:
2022/03/25 04:54:15.335|> at Interop.SLDataMiner.IDataMiner.NotifyDataMiner(String bstrUser, Int32 iType, Object varValue, Object varValue2, Object& pvarReturnValue)
2022/03/25 04:54:15.335|> at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
2022/03/25 04:54:15.335|> at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
2022/03/25 04:54:15.335|>
2022/03/25 04:54:15.335|> Exception rethrown at [0]:
2022/03/25 04:54:15.335|> at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
2022/03/25 04:54:15.335|> at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
2022/03/25 04:54:15.335|> at Interop.SLDataMiner.IDataMiner.NotifyDataMiner(String bstrUser, Int32 iType, Object varValue, Object varValue2, Object& pvarReturnValue)
2022/03/25 04:54:15.335|> at Skyline.DataMiner.Net.MessageHandler.HandleSetDataMinerInfo(IConnectionInfo connInfo, SetDataMinerInfoMessage request)
2022/03/25 04:54:15.336|> at Skyline.DataMiner.Net.Facade.HandleClientRequestMessage(IConnectionInfo connInfo, ClientRequestMessage oneMsg, Boolean canQueue)
2022/03/25 04:54:15.338|> at Skyline.DataMiner.Net.Facade.HandleMessageInternal(IConnectionInfo connInfo, DMSMessage oneMsg, Int32 groupID, Int32 groupTotal)
2022/03/25 04:54:15.338|> at Skyline.DataMiner.Net.Facade.HandleMessage(IConnectionInfo connInfo, DMSMessage oneMsg, Int32 groupID, Int32 groupTotal)
2022/03/25 04:54:15.339|> at Skyline.DataMiner.Net.BaseFacade.HandleMessages(IConnectionInfo connInfo, DMSMessage[] msgs)
2022/03/25 04:54:15.339|> at Skyline.DataMiner.Net.Facade.HandleMessage(IConnectionInfo connInfo, DMSMessage oneMsg, Int32 groupID, Int32 groupTotal)
2022/03/25 04:54:15.340|> at Skyline.DataMiner.Net.BaseFacade.HandleMessages(IConnectionInfo connInfo, DMSMessage[] msgs)
2022/03/25 04:54:15.340|> at Skyline.DataMiner.Net.Facade.HandleMessagesForClient(IConnectionInfo connInfo, DMSMessage[] messages)
2022/03/25 04:54:15.342|> at Skyline.DataMiner.Net.Transport.Remoting.InternalHandleMessages(ConnectionToken token, DMSMessage[] inputMessages)
2022/03/25 04:54:15.347|> --- End of inner exception stack trace ---
2022/03/25 04:54:15.348|>
2022/03/25 04:54:15.348|> Server stack trace:
2022/03/25 04:54:15.348|> at Skyline.DataMiner.Net.Transport.Remoting.InternalHandleMessages(ConnectionToken token, DMSMessage[] inputMessages)
2022/03/25 04:54:15.348|> at Skyline.DataMiner.Net.Transport.Remoting.HandleMessages(ConnectionToken token, DMSMessage[] inputMessages)
2022/03/25 04:54:15.348|> at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
2022/03/25 04:54:15.348|> at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
2022/03/25 04:54:15.348|>
2022/03/25 04:54:15.348|> Exception rethrown at [0]:
2022/03/25 04:54:15.348|> at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
2022/03/25 04:54:15.348|> at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
2022/03/25 04:54:15.348|> at Skyline.DataMiner.Net.ISLNet.HandleMessages(ConnectionToken token, DMSMessage[] inputMessages)
2022/03/25 04:54:15.348|> at Skyline.DataMiner.Net.RemotingConnection.TransportSpecificHandleMessage(ConnectionToken tok, DMSMessage[] msgs, Int32 timeout)
2022/03/25 04:54:15.348|> at Skyline.DataMiner.Net.Connection.InternalHandlePackedMessages(ConnectionToken tok, DMSMessage[] msgs, Int32 timeout)
2022/03/25 04:54:15.348|> at Skyline.DataMiner.Net.Connection.InternalHandleUnpackedMessages(DMSMessage[] msgs, Int32 timeout)
2022/03/25 04:54:15.348|> at Skyline.DataMiner.Net.Connection.HandleMessages(DMSMessage[] msgs, Int32 timeout)
2022/03/25 04:54:15.348|> at Skyline.DataMiner.Net.Connection.HandleMessage(DMSMessage msg, Int32 timeout)
2022/03/25 04:54:15.348|> at SLDisDMAComm.SLDisDmaCommService.DisTriggerQAction(Int32 dmaId, Int32 elementId, Int32 qactionId, Int32 triggerPID, String rowKey, Object oldValue, Object newValue)
2022/03/25 04:54:15.348|> Finished executing DisTriggerQAction
Any help to find out what I might be missing would be appreciated.
Hi Michiel,
sure please find details below.
DMA Version: Development is done on 10.2.0.0-11517
DIS version: 2.36.1.13
VS version: Microsoft Visual Studio Community 2019 Version 16.4.2
Protocol is an own developed protocol. So this is the QAction tag used:
“QAction id=”2″ name=”After Startup” encoding=”csharp” triggers=”2″>
“
Based on the name, this QAction will trigger after the startup of the protocol. When not using DIS Inject, does the QAction run properly?
Is this the first time you use DIS Inject remotely or have you used it before without issues?
I could also get the same error when an unhandled exception happened in a QAction. If you didn’t do that yet, try to enclose your code with a try catch and log the exception that way.
The name of the QAction is misleading. In fact it is triggered by a timer/group every 5 seconds. The QAction itself runs properly without unhandled exception when deployed to the staging agent and the code is already encased in a try catch. It’s the first time I used DIS inject in general. We never got around to set this up properly but I am currently working on an protocol where this would be quite handy to debug it. If it helps I would be also fine to provide the protocol.
Hi Manuel,
i noticed this question is now open for a while now. Can you confirm you found a solution?
As Michiel mentioned, you can also reach out to techsupport@skyline.be for a more in depth investigation.
Hi Manuel
Could you provide us with the DMA version, DIS version, VS version and the protocol you are using? If you are making your own protocol, could you provide use the contents of the QAction tag itself (which holds the attributes). The C# code itself is not needed for now.