Не удается согласовать рукопожатие от Angular до Azure SignalR (хост.NET CORE)
Я пытаюсь перейти с локальной службы 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");
});
То, что я помогаю во время переговоров:
204 после ВАРИАНТОВ
404 после POST
URL-адрес правильный, начинается с HTTPS и заканчивается на "ws/somehub/gotiate"
1 ответ
Прежде всего прокомментируйте ваш CORSPolicy
связанный код из Startup.cs
и попробуй
Добавьте код в свой Startup.cs
За Configure
метод
app.UseCors(builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.WithMethods("GET", "POST")
.AllowCredentials();
});