Hi
I encountered a gRPC 'Method Not Found Grpc.Net.Client.GrpcChannelOptions.set_HttpClient' error when trying to remote Cube to a remote DMS via dataminer.services.
Any idea how I can fix it please? Missing libraries?
- The error was observed on Cube running on several machines with Windows Server 2016 but connection ok on Windows 11 machines remoting in via dataminer.services.
- The error shows up on Cube client version 10.4.2413 (current latest on dataminer.services) and on DMS-sourced version 10.3.12.
- Tried uninstall Cube, removed dir C:\Users\myuser\AppData\Local\Skyline, and reinstall Cube again, still shows the same error.
- SLCubeLog (see below) appears to show Cube can reach the remote DMS.
- After a failed login attempt, mouse over the connection entry on the Cube Launcher, it shows the remote DMS version. Another evidence that Cube can reach the remote DMS.
- The DMS is on 10.3.12 configured with .NET Remoting and not gRPC.
- Already tried switching to gRPC in ConnectionSettings.txt but was Cube became unstable it crashed after a short while, so reverting to .NET Remoting - the only stable option for local Cube on WinServer 2016 and for remote Cube on Win11.
- Unlike remote Cube, HTML Monitoring from browser works fine regardless of Windows version.
SLCubeLog from Cube v10.4.2413.2318
----------- LogID: 1 -----------
Info
ServerTime: dd/mm/yyyy hh:27:34
ClientTime: dd/mm/yyyy hh:27:34
Message : Product version: 10.3.2343.2648-b2b4dea5
....
----------- LogID: 5 -----------
Info
ServerTime: dd/mm/yyyy hh:27:35
ClientTime: dd/mm/yyyy hh:27:35
Message : Unable to retrieve DMS 'mydns-myorg.ON.DATAMINER.SERVICES'
Exception : System.AggregateException: Failed to setup a background connection ---> System.MissingMethodException: Method not found: 'Void Grpc.Net.Client.GrpcChannelOptions.set_HttpClient(System.Net.Http.HttpClient)'.
at Skyline.DataMiner.Net.GRPCConnection.GRPCConnection.Init(Uri endPointUrl, Boolean makeConnection)
at Skyline.DataMiner.Net.GRPCConnection.GRPCConnection..ctor(Int32 portOverride, Uri endPointUrl, ConnectionAttributes attributes, String subDir)
at Skyline.DataMiner.Net.ConnectionSettings.GetConnection(String hostName, ConnectionAttributes extraAttribs, Type[] supportedTypes)
at Skyline.DataMiner.Client.Components.login.ViewModel.LoginViewModel.RetrieveDMSNameSync()
--- End of inner exception stack trace ---
at Skyline.DataMiner.Client.Components.login.ViewModel.LoginViewModel.RetrieveDMSNameSync()
---> (Inner Exception #0) System.MissingMethodException: Method not found: 'Void Grpc.Net.Client.GrpcChannelOptions.set_HttpClient(System.Net.Http.HttpClient)'.
at Skyline.DataMiner.Net.GRPCConnection.GRPCConnection.Init(Uri endPointUrl, Boolean makeConnection)
at Skyline.DataMiner.Net.GRPCConnection.GRPCConnection..ctor(Int32 portOverride, Uri endPointUrl, ConnectionAttributes attributes, String subDir)
at Skyline.DataMiner.Net.ConnectionSettings.GetConnection(String hostName, ConnectionAttributes extraAttribs, Type[] supportedTypes)
at Skyline.DataMiner.Client.Components.login.ViewModel.LoginViewModel.RetrieveDMSNameSync()<---
Hi,
following the documentation from Accessing your DMS remotely with DataMiner Cube | DataMiner Docs, you are indeed supposed to set the connection settings to use gRPC (see ConnectionSettings.txt) .
If this caused instability when accessing it locally, maybe there is still something else not 100% configured correctly. I would try checking the logs from the ApiGateway DxM which you should be able to find here: C:\ProgramData\Skyline Communications\DataMiner APIGateway\Logs\ .
If it caused instability only when accessing it remotely via dataminer.services, check if your are running the latest versions of all the DxMs on all your servers and try to update them otherwise, see Managing the nodes of a DMS connected to dataminer.services | DataMiner Docs.
If you need help with any of these things, please contact support so we can follow up more closely.
Wkr
I forwarded your topic to the team that knows more about grpc/cube. But note that you don’t need to turn down the DMA/DMS when doing DxM updates. That’s why they were made to begin with. See https://docs.dataminer.services/user-guide/Reference/DataMiner_Extension_Modules.html
Hello,
I’m part of the team responsible for this feature (Data-Core).
We believe it’s better to raise a task with our support to follow up on this as it has not been seen before and needs further investigation.
So after upgrading the DxMs, if the issue persists, please collect a Log Collector package and the Cube debug information, as described here: https://docs.dataminer.services/user-guide/Troubleshooting/Procedures/Collecting_data_to_report_an_issue_to_TechSupport.html and raise a task.
Thanks in advance for your help.
Thank you for responding Jordy.
I have indeed read the article that you pointed out, hence I tried switching to gRPC as .NET Remoting is apparently ‘obsolete’ for my DMS version.
The instability that I’ve observed is with local LAN Cube connection and I do not have the luxury to take down the DMS for too long, hence no choice but revert to .NET Remoting.
My observation echoes the gRPC warning in the hardening doc – https://docs.dataminer.services/user-guide/Advanced_Functionality/Security/DataMiner_hardening_guide.html#grpc- which reads:
“The gRPC connection feature is still a beta feature in DataMiner 10.3.2/10.3.0 CU0, which means you may still encounter issues and the connection might still be less stable than with .NET Remoting.”
Granted, my DMS is a bit newer but it’s still 10.3 not 10.4.
During the brief gRPC state, remote Cube still didn’t work which suggested it’s not to do with gPRC/Remoting but the Cube client.
Also switching to gRPC does not explain why .NET Remoting works for those remote Cube on Win11 machines but not others.
I’ll look into DxMs as you suggest when I can find a time to bring down the DMS.