【问题标题】:Can't negotiate handshake from Angular to Azure SignalR (.NET CORE host)无法协商从 Angular 到 Azure SignalR(.NET CORE 主机)的握手
【发布时间】:2018-12-03 08:45:56
【问题描述】:

我正在尝试从 .NET CORE 2.1 后端的本地 SignalR 服务更改为 Azure SignalR。

全部:Angular (@aspnet/signalr)、SignalR 和 Azure SignalR v1.0.4 包。

在本地配置中一切正常。

services.AddCors(options =>
        {
            options.AddPolicy("AllowAll", builder =>
                builder.AllowAnyOrigin()
                       .AllowAnyMethod()
                       .AllowAnyHeader()
                       .AllowCredentials());               
        });


services.Configure<MvcOptions>(options =>
{
    options.Filters.Add(new RequireHttpsAttribute());
});

services.AddMvc(options =>
{
    //options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
    options.Filters.Add(new RequireHttpsAttribute());
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddJsonOptions(options =>
{
    //options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});


services.AddSignalR(hubOptions =>
{
    hubOptions.EnableDetailedErrors = true;
});

app.UseCors("AllowAll");

app.UseSignalR(routes =>
{
    routes.MapHub<SomeHub>("/ws/somehub");
});

修改后:

services.AddSignalR().AddAzureSignalR(Configuration["AzureSignalRConnectionString"]);

app.UseAzureSignalR(routes =>
{
     routes.MapHub<SomeHub>("/ws/somehub");
});

我在谈判中修改的是:

选项后的 204

POST 后 404

网址正确,以 HTTPS 开头,以 'ws/somehub/negotiate' 结尾

【问题讨论】:

    标签: angular azure asp.net-core-2.0 asp.net-core-signalr


    【解决方案1】:

    首先在Startup.cs评论你的CORSPolicy相关代码并尝试一下

    在您的Startup.cs 中添加代码

    对于Configure方法

    app.UseCors(builder =>
                {
                    builder.AllowAnyOrigin()
                        .AllowAnyHeader()
                        .WithMethods("GET", "POST")
                        .AllowCredentials();
                });
    

    【讨论】:

    • 还是一样。你真的认为这是后端的错,而不是 Azure 服务?
    • 如果您在startup.cs 中添加 CORS Policy 然后不需要将 CORS 策略 设置为 可能是 Azure App 服务的错b>Azure 门户.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2018-10-14
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多