From 7a2e1e58daa7634ace780604f84dfb6c7317783d Mon Sep 17 00:00:00 2001 From: Luke Latham <1622880+guardrex@users.noreply.github.com> Date: Thu, 29 Aug 2024 11:31:23 -0400 Subject: [PATCH] Use "session affinity" terminology (#33487) --- aspnetcore/blazor/fundamentals/signalr.md | 13 ++++++------- aspnetcore/blazor/host-and-deploy/server.md | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/aspnetcore/blazor/fundamentals/signalr.md b/aspnetcore/blazor/fundamentals/signalr.md index 5607996aba..1dc3452f76 100644 --- a/aspnetcore/blazor/fundamentals/signalr.md +++ b/aspnetcore/blazor/fundamentals/signalr.md @@ -179,20 +179,19 @@ To resolve the problem, use ***either*** of the following approaches: * * [Blazor samples GitHub repository (`dotnet/blazor-samples`)](https://github.com/dotnet/blazor-samples) ([how to download](xref:blazor/fundamentals/index#sample-apps)) -## Use sticky sessions for server-side webfarm hosting +## Use session affinity (sticky sessions) for server-side webfarm hosting -A Blazor app prerenders in response to the first client request, which creates UI state on the server. When the client attempts to create a SignalR connection, **the client must reconnect to the same server**. When more than one backend server is in use, the app should implement *sticky sessions* for SignalR connections. +A Blazor app prerenders in response to the first client request, which creates UI state on the server. When the client attempts to create a SignalR connection, **the client must reconnect to the same server**. When more than one backend server is in use, the app should implement session affinity, also called *sticky sessions*, for SignalR connections. -> [!NOTE] -> The following error is thrown by an app that hasn't enabled sticky sessions in a webfarm: -> -> > blazor.server.js:1 Uncaught (in promise) Error: Invocation canceled due to the underlying connection being closed. +The following error is thrown by an app that hasn't enabled session affinity in a webfarm: + +> :::no-loc text="blazor.server.js:1 Uncaught (in promise) Error: Invocation canceled due to the underlying connection being closed."::: ## Server-side Azure SignalR Service We recommend using the [Azure SignalR Service](xref:signalr/scale#azure-signalr-service) for server-side development hosted in Microsoft Azure. The service works in conjunction with the app's Blazor Hub for scaling up a server-side app to a large number of concurrent SignalR connections. In addition, the SignalR Service's global reach and high-performance data centers significantly aid in reducing latency due to geography. -Sticky sessions are enabled for the Azure SignalR Service by setting the service's `ServerStickyMode` option or configuration value to `Required`. For more information, see . +[Session affinity](#use-session-affinity-sticky-sessions-for-server-side-webfarm-hosting) is enabled for the Azure SignalR Service by setting the service's `ServerStickyMode` option or configuration value to `Required`. For more information, see . ## Server-side circuit handler options diff --git a/aspnetcore/blazor/host-and-deploy/server.md b/aspnetcore/blazor/host-and-deploy/server.md index 9ebcdb2fb5..8d2f1cdb04 100644 --- a/aspnetcore/blazor/host-and-deploy/server.md +++ b/aspnetcore/blazor/host-and-deploy/server.md @@ -195,13 +195,13 @@ For a deeper exploration of scaling server-side Blazor apps on the Azure Contain When using IIS, enable: * [WebSockets on IIS](xref:fundamentals/websockets#enabling-websockets-on-iis). -* [Sticky sessions with Application Request Routing](/iis/extensions/configuring-application-request-routing-arr/http-load-balancing-using-application-request-routing). +* [Session affinity with Application Request Routing](/iis/extensions/configuring-application-request-routing-arr/http-load-balancing-using-application-request-routing). For more information, see the guidance and external IIS resource cross-links in . ## Kubernetes -Create an ingress definition with the following [Kubernetes annotations for sticky sessions](https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/): +Create an ingress definition with the following [Kubernetes annotations for session affinity](https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/): ```yaml apiVersion: extensions/v1beta1