1: Вступ до сесії
Що таке сесія? Простіше кажучи, це число, яке сервер надає клієнту. Коли веб-сервер працює, може бути кілька користувачів, які переглядають сайти, які працюють на цьому сервері. Коли кожен користувач вперше підключається до веб-сервера, він встановлює сесію з сервером, і сервер автоматично призначає йому SessionID для ідентифікації унікальної ідентичності користувача. Цей SessionID — це рядок із 24 символів, випадково згенерований веб-сервером, і ми побачимо його в дії в експерименті нижче.
2: Централізований режим і конфігурація сесії в Asp.Net
(1): InProc, Session зберігається в процесі, який також є методом зберігання в ASP.Net і є значенням за замовчуванням (2): StateServer, сесія зберігається в окремому державному сервісі, тобто ASP.NET State Service (3): SQLServer, Session зберігається в базі даних SQL Server (4): Custom — користувацький метод збереження, який можна зберігати в Oracle, SQLServer, MongoDb та Redis У цій статті головним часом йдеться про зберігання та спільне використання сесій у Redis
3: Конфігурація провайдера сесії на базі Redis
(1) Внесіть такі зміни до HomeControllers Сайтів A і B, як показано на рисунку нижче, та додайте функції створення та отримання сесій
Відповідні види View
(2) Конфігурація RedisProvider: Microsoft.Web.RedisSessionStateProvider Встановіть Microsoft.Web.RedisSessionStateProvider за допомогою Nuget, як показано на наступному зображенні:
Змініть профіль:
4. Тест сесії балансування навантаження
(1) Введіть у браузері:http://192.168.152.128/ Створити сесію
(2) Введіть у браузері:http://192.168.152.128/home/getsessionvalue, Відкрийте дві вкладки, обов'язково відкривайте їх у тому ж вікні браузера, інакше SessionID точно буде іншим
На рисунку видно, що сайт А ділиться сесіями, створеними сайтом Б. Ви також можете побачити сесію, яку щойно створили з redis, як показано на рисунку нижче
|