Невозможно получить обновленное значение из базы данных с помощью SignalR - PullRequest
0 голосов
/ 29 марта 2019

Я работаю над проектом .Net Core и Angular JS.Я использую signalr для извлечения данных из базы данных и отображения их в пользовательском интерфейсе. Я добавил таймер, чтобы получать обновленные данные из базы данных и отправлять их на клиентскую сторону с помощью signalr каждые 20 секунд.Ошибка:

не может получить доступ к удаленному объекту

.Я получаю эту ошибку, когда таймер выполняет определенное действие.

Угловая js

initSignalRConnection(){
    this._hubConnection = new HubConnectionBuilder()
    .configureLogging(signalR.LogLevel.Debug)
    .withUrl(url), {
      skipNegotiation: true,
      transport: signalR.HttpTransportType.WebSockets
    })
    .build();

  this._hubConnection
    .start()
    .then(() => console.log('Connection started!'))
    .catch(err => console.log('Error while establishing connection :('));       
    this._hubConnection.on("SendData", (response) => {                  
        console.log(response);
    });
}

C #:

    public async Task<IActionResult> Get()
    {
        try
        {              
            var timer = new TimerManager(() => _hub.Clients.All.SendAsync("SendData",  FetchDashboardData(csqname))); --> here i'm getting the error which i mentioned above
            return Ok(new { Message = "Request Completed" });
        }
        catch (Exception ex)
        {
            Logger.LogError($"Error on Get Dashboard data Details {ex.Message}, {ex} ");
            return BadRequest();
        }
    }

TimerManager:

  public class TimerManager
  {
    private S.Timer _timer;
    private S.AutoResetEvent _autoResetEvent;
    private Action _action;

    public DateTime TimerStarted { get; }

    public TimerManager(Action action)
    {
        _action = action;
        _autoResetEvent = new S.AutoResetEvent(false);
        _timer = new S.Timer(Execute, _autoResetEvent, 1000, 20000);
        TimerStarted = DateTime.Now;
    }

    public void Execute(object stateInfo)
    {
        _action();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...