共用方式為


ASP.NET Core SignalR 中的 IHttpContextAccessor/HttpContext

注意

這不是本文的最新版本。 如需目前版本,請參閱本文的 .NET 9 版本

重要

這項資訊與發行前版本產品有關,在正式發行前可能會大幅修改。 Microsoft未就此處提供的資訊提供任何明示或默示擔保。

如需目前版本,請參閱本文的 .NET 9 版本

IHttpContextAccessor / HttpContext 通常應該避免 SignalR,因為有效的 HttpContext 不一定可用。 在大部分情況下,內容不存在 (null)。

即使有 HttpContext 實例可用,內容仍相依於傳輸:

  • WebSockets 會因為初始交握而接收單一內容。
  • 長時間輪詢會為每個用戶端的「輪詢」要求配置新的上下文。
  • SignalR 服務會收到模擬/偽造/填充碼內容。

在 SignalR 中樞內工作時,您可以使用 GetHttpContextExtensions.GetHttpContext 方法來直接存取 HttpContext。 如果連線未與 HTTP 要求相關聯,這個方法會傳回目前連線的 HttpContextnull。 這特別適用於直接在中樞內擷取 HTTP 連線資訊,例如標頭和查詢字串。 建議您透過 IHttpContextAccessor 呼叫此方法,以存取中樞中的 HttpContext。 如需詳細資訊,請參閱 使用中樞於 ASP.NET Core 中 SignalR

如需 ASP.NET Core Blazor 應用程式中 IHttpContextAccessor/HttpContext 的指引,請參閱 ASP.NET Core Blazor 應用程式中的 IHttpContextAccessor/HttpContext