The setup I'm trying to accomplish is this: I have a signalR server that supports 2 types of clients - one type that supplies data and another that receives data. When a "receiver" type client chooses one of the "sender" type clients to monitor, the SignalR server makes a call to the "sender" client to open a connection. The "sender" client is an ASP.NET Core instance running as a Windows Service. The POST request calls a service that starts a timer and tries to open a SignalR connection as a client. The POST request is going through as expected and it calls the service properly. When the service tries to open the SignalR connection, though, I get: System.TypeLoadException in SignalR.Client.dll (Inheritance security rules violated by type: 'System.Net.Http.WebRequestHandler'. Derived types must either match the security accessibility of the base type or be less accessible).
The action method in the controller looks like this:
[HttpPost] public IActionResult StartUpdate() { _updateDriver.StartTiming(); return Ok("Timing has started"); }
And the method in the service looks like this:
public void StartTiming() { if (!_isTiming) { try { _hubProxy = _hubConnection.CreateHubProxy("RemoteDataServerHub"); _hubConnection.Start().Wait(); _hubProxy.Invoke("JoinGroup", "Sender").Wait(); _timer.Start(); _isTiming = true; } catch (Exception ex) { Debug.Print(ex.Message); _isTiming = false; } } }
The exception is thrown on the _hubConnection.Start().Wait() line. Does anyone have any idea what's going on here? I'm not very experienced in web applications or ASP.NET Core or SignalR. I may be biting off a bit more than I can chew here. But if anyone can
point me in the right direction, it would be much appreciated!
Thanks!