Blazor 服务器 WebSocket 连接失败:传输出现错误

Lor*_*nti 5 c# websocket asp.net-core blazor blazor-server-side

blazor server我在使用websockets的应用程序中遇到问题。

在本地使用该应用程序没有任何问题,但是当我将其加载到托管服务器上时,我从浏览器中收到这些错误。

应用程序本身工作正常,但有时某些用户会收到消息“正在尝试重新连接到服务器”。

网络套接字错误

这是我的Startup.cs

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        // ******
        // BLAZOR COOKIE Auth Code (begin)
        services.Configure<CookiePolicyOptions>(options =>
        {
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });
        services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options => options.ExpireTimeSpan = TimeSpan.FromDays(1));

        // BLAZOR COOKIE Auth Code (end)
        // ******

        services.AddMudServices();

        services.AddRazorPages();
        services.AddServerSideBlazor();
       
        services.AddHttpContextAccessor();


        // ******
        // BLAZOR COOKIE Auth Code (begin)
        // HttpContextAccessor
        services.AddHttpContextAccessor();
        services.AddScoped<HttpContextAccessor>();
        services.AddHttpClient();
        services.AddScoped<HttpClient>();
        // BLAZOR COOKIE Auth Code (end)
        // ******
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();

        app.UseRouting();

        // ******
        // BLAZOR COOKIE Auth Code (begin)
        app.UseStaticFiles();
        app.UseCookiePolicy();
        app.UseAuthentication();
        // BLAZOR COOKIE Auth Code (end)
        // ******

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapBlazorHub();
            endpoints.MapFallbackToPage("/_Host");
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢 ?

Mic*_*ton 2

我遇到了同样的错误。我没有打开 Azure 应用服务的 ARR Affinity。

打开它解决了这个问题。

请参阅: https://learn.microsoft.com/en-us/aspnet/core/signalr/publish-to-azure-web-app ?view=aspnetcore-5.0#configure-the-app-in-azure-app-服务