Hi,
I have the following error when I want to publish a protocol to a gRPC-enabled DataMiner. Is there anything that I can do to make this work?
DIS version: 2.44.1.4
The 'Test connection' is successful.
Note: The system is not in the local network.
Thx
System.ServiceModel.FaultException:
Message="Grpc.Core.RpcException: Status(StatusCode="Unknown", Detail="Bad gRPC response. HTTP status code: 500")
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Skyline.DataMiner.Net.GRPCConnection.JwtGrpcClientInterceptor.<HandleAsyncResponse>d__10`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Skyline.DataMiner.Net.GRPCConnection.GRPCConnection.TransportSpecificHandleMessage(ConnectionToken token, DMSMessage[] messages, Int32 timeout)
at Skyline.DataMiner.Net.Connection.InternalHandlePackedMessages(ConnectionToken tok, DMSMessage[] msgs, Int32 timeout)
at Skyline.DataMiner.Net.Connection.InternalHandleUnpackedMessages(DMSMessage[] msgs, Int32 timeout)
at Skyline.DataMiner.Net.Connection.HandleMessages(DMSMessage[] msgs, Int32 timeout)
at Skyline.DataMiner.Net.Connection.HandleMessage(DMSMessage msg, Int32 timeout)
at SLDisDMAComm.SLDisDmaCommService.UploadProtocol(String name, String version, String contents)"
Source="mscorlib"
StackTrace:
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at SLDisDMACommShared.ISLDisDmaCommService.UploadProtocol(String name, String version, String contents)
at SLDisDMACommClient.DmaClient.UploadProtocol(String name, String version, String contents)
at Skyline.VSX.ProtocolEditor.Margin.PublishDropDownButton.<>c__DisplayClass19_0.<PublishProtocol>b__0(DoWorkEventArgs a)
at SLDisCommon.Tools.Tools.<>c__DisplayClass35_0.<RunInBackground>b__0(Object a, DoWorkEventArgs b)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
I experience the exact same behavior. Note that publishing automation scripts works, this is only when I’m trying to publish protocols.
As an update. The root cause of the issue has been identified as a firewall rule that was blocking the request.
The rule, detecting command injection, was filtering on HTTP POST requests where the word 'set' is found in the content. That 'set' word was indeed present in the protocol that was uploaded.
Is it a particularly large protocol, maybe we’re having somewhat different size limits for gRPC?