#asp.net-core #iis #signalr #asp.net-core-5.0
Вопрос:
Я просто пытаюсь заставить SignalR работать с Asp.Net Ядро на IIS. Он отлично работает локально (конечно), но при развертывании я получаю:
HttpRequestException: Код состояния ответа не указывает на успех: 401 (Несанкционированный).
Это происходит, когда
await hub.StartAsync();
называется, в моем IIS у меня есть:
Это сайт интрасети, и это необходимо.
I am currently initializing the Hubs like this:Hub = new HubConnectionBuilder()
.WithUrl(navMan.ToAbsoluteUri(hubPath), options =>
{
options.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransportType.WebSockets;
options.UseDefaultCredentials = true;
})
.WithAutomaticReconnect()
.Build();
В этот момент я так сильно изменил все вокруг, что не знаю, в какую сторону идти. Я думаю, мой вопрос в следующем: как мне заставить это работать в Asp.Net Основная среда? Может ли это сработать? Что еще вам нужно от меня для устранения неполадок? Спасибо.
ИЗМЕНИТЬ: Похоже, это известные проблемы: https://github.com/dotnet/aspnetcore/issues/25000
Комментарии:
1. Пожалуйста, проверьте, совпадает ли проблема с этой проблемой на github: github.com/dotnet/aspnetcore/issues/6120
2. Похоже, но это объяснение повсюду, и неясно, как оно было на самом деле решено.
3. Я сделал то, что сказано в этих документах, и это не работает.
Ответ №1:
Также столкнулся с этим исключением при создании приложения для чата Blazor Server с проверкой подлинности Windows. Немного погуглил, нашел эту аутентификацию и авторизацию в ASP.NET Основной сигнал-Проверка подлинности Windows
Я добавил класс NameUserIdProvider, добавил его в файл Startup.cs и больше никаких проблем.