【发布时间】:2019-10-21 18:11:47
【问题描述】:
我有一个 ASP .Net Core 2.2 Web API。在其中我使用的是 SignalR。在我的集线器中,我需要将消息保存到数据库,所以我得到了一个 DbContext 实例,并且因为我正在调用 DbContext 的 SaveChangesAsync() 方法,所以我需要使该方法异步。所以,从
public Task SendMessageToAll(string message)
{
return Clients.All.SendAsync("ReceiveMessage", message);
}
我现在有
public async Task SendMessageToAll(string message)
{
using (var scope = _serviceProvider.CreateScope())
{
var dbContext = scope.ServiceProvider.GetRequiredService<DbContext>();
Message newMessage = new Message()
{
Body = message,
Timestamp = DateTime.Now
};
dbContext.Messages.Add(newMessage);
await dbContext.SaveChangesAsync();
}
return Clients.All.SendAsync("ReceiveMessage", message);
}
但是,现在我收到了这个错误:
由于 'ChatHub.SendMessageToAll(string)' 是一个返回 'Task' 的异步方法,return 关键字后面不能跟对象表达式。您是否打算返回“任务”?
这是有道理的,但我不知道如何解决它。有什么想法吗?
【问题讨论】:
标签: signalr asp.net-core-webapi signalr-hub