WinForms连接Azure SignalR Service时遭遇401未授权错误
WinForms连接Azure SignalR Service时出现401未授权错误
我正在开发一款需连接部署在Web应用上的Azure SignalR Service的WinForms应用,尝试建立SignalR连接时遇到了401 Unauthorized错误。
WinForms应用初始化SignalR连接的代码
private async void InitializeSignalRConnection() { await Task.Delay(5000); try { string token = await GetSignalRAccessToken(); connection = new HubConnectionBuilder() .WithUrl("https://your-signalr-endpoint/client/?hub=notifications", options => { options.AccessTokenProvider = () => Task.FromResult(token); }) .WithAutomaticReconnect() .Build(); await connection.StartAsync(); connection.On<TransactionData>("SendMessageToClients", async (transactionData) => { MessageBox.Show($"Transaction Received in WinForms: {transactionData.TransactionId}"); await connection.InvokeAsync("AcknowledgeTransaction", transactionData.TransactionId, "Received and Processed by WinForms"); }); Console.WriteLine("SignalR connection started."); } catch (Exception ex) { MessageBox.Show($"Error initializing SignalR connection: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
Web应用相关配置代码
var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages(); builder.Services.AddCors(options => options.AddPolicy("testing", policy => { policy.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin(); })); string azureSignalRConnectionString = builder.Configuration.GetValue<string>("AzureSignalRConnectionString"); builder.Services.AddSignalR().AddAzureSignalR(azureSignalRConnectionString); builder.Services.AddControllers(); var app = builder.Build(); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseCors("testing"); app.UseAuthorization(); app.MapHub<NotificationHub>("/notifications"); app.MapControllers(); app.MapRazorPages(); app.Run();
已尝试的操作
- 验证SignalR连接URL
- 检查CORS策略设置
- 确认令牌已正确生成并传递
结果对比
预期结果:成功连接到SignalR hub
实际结果:出现401未授权错误
恳请帮忙分析可能导致该问题的原因。
内容的提问来源于stack exchange,提问作者Rida Fatima
相关产品推荐
相关产品推荐

