如果ASP.NET Core 3.1 SignalR连接成功但无法工作,可能有以下几个原因和解决方法:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddSignalR();
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseEndpoints(endpoints =>
{
endpoints.MapHub("/yourHubPath");
});
// ...
}
var connection = new signalR.HubConnectionBuilder()
.withUrl("/yourHubPath")
.build();
public class YourHubClass : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseCors("AllowAll");
// ...
}
以上是一些常见的解决方法,根据具体情况可能会有所不同。如果仍然无法解决问题,请提供更多的详细信息和代码示例,以便我们能够更准确地帮助您解决问题。