Не удается согласовать рукопожатие от Angular до Azure SignalR (хост .NET CORE) - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь перейти с локальной службы SignalR на серверной части .NET CORE 2.1 на Azure SignalR.

Все: пакеты Angular (@ aspnet / signalr), SignalR и Azure SignalR в версии 1.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");
});

Что я получаю во время переговоровis:

204 после OPTIONS

404 после POST

URL-адрес правильный, начинается с HTTPS и заканчивается 'ws / somehub /gotiate'

1 Ответ

0 голосов
/ 03 декабря 2018

Прежде всего прокомментируйте свой CORSPolicy связанный код с Startup.cs и попробуйте

Добавьте код в Startup.cs

Для Configure метод

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