Я работаю над проектом .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();
}
}