IHttpContextAccessor
/
HttpContext
в ASP.NET Core SignalR
Заметка
Это не последняя версия этой статьи. Сведения о текущем выпуске см. в разделе статьив версии .NET 9.
Важный
Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.
Сведения о текущем выпуске см. в версии .NET 9 этой статьи.
IHttpContextAccessor
/
HttpContext обычно следует избегать с SignalR, так как допустимый HttpContext не всегда доступен. В большинстве случаев контекст не существует (null
).
Даже если доступен экземпляр HttpContext, контекст зависит от транспорта:
- WebSockets получает один контекст в результате начального рукопожатия.
- Длительное опросывание получает новый контекст для каждого клиентского запроса.
- Служба SignalR получает имитированный или фальшивый контекст.
При работе в центре SignalR доступ к HttpContext можно получить непосредственно с помощью метода GetHttpContextExtensions.GetHttpContext. Этот метод возвращает HttpContext текущего подключения или null
, если соединение не связано с HTTP-запросом. Это особенно полезно для получения сведений о подключении HTTP, таких как заголовки и строки запроса, непосредственно в узле. Мы рекомендуем вызывать этот метод через IHttpContextAccessor для доступа к HttpContext в центре. Дополнительные сведения см. в разделе Использование центров в ASP.NET Core SignalR.
Для получения руководства по IHttpContextAccessor/HttpContext в приложениях ASP.NET Core Blazor, см. раздел IHttpContextAccessor/HttpContext в приложениях ASP.NET Core Blazor.
ASP.NET Core