首页 > 解决方案 > Blazor 服务器 WebSocket 连接失败:传输出错

问题描述

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

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

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

网络套接字错误

这是我的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");
        });
    }
}

可能是什么问题呢 ?

标签: c#asp.net-corewebsocketblazorblazor-server-side

解决方案


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

打开它解决了这个问题。

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


推荐阅读