Den här självstudien visar hur du skapar och ändrar en Blazor Server-app. Du lär dig att:
Skapa ett enkelt chattrum med Blazor Server-appmallen.
Arbeta med Razor-komponenter.
Använd händelsehantering och databindning i Razor-komponenter.
Snabbdistribution till Azure App Service i Visual Studio.
Migrera från lokal SignalR till Azure SignalR Service.
Viktigt
Råa anslutningssträng visas endast i den här artikeln i demonstrationssyfte.
En anslutningssträng innehåller den auktoriseringsinformation som krävs för att ditt program ska få åtkomst till Azure SignalR Service. Åtkomstnyckeln i anslutningssträng liknar ett rotlösenord för din tjänst. Skydda alltid dina åtkomstnycklar i produktionsmiljöer. Använd Azure Key Vault för att hantera och rotera dina nycklar på ett säkert sätt och skydda dina anslutningssträng med hjälp av Microsoft Entra-ID och auktorisera åtkomst med Microsoft Entra-ID.
Undvik att distribuera åtkomstnycklar till andra användare, hårdkoda dem eller spara dem var som helst i oformaterad text som är tillgänglig för andra. Rotera dina nycklar om du tror att de har komprometterats.
Från och med Visual Studio 2019 version 16.2.0 är Azure SignalR Service inbyggt i publiceringsprocessen för webbprogram för att göra det mycket enklare att hantera beroendena mellan webbappen och SignalR-tjänsten. Du kan arbeta utan några kodändringar samtidigt:
i en lokal SignalR-instans i en lokal utvecklingsmiljö.
i Azure SignalR Service för Azure App Service.
Skapa en Blazor-chattapp:
I Visual Studio väljer du Skapa ett nytt projekt.
Välj Blazor App.
Namnge programmet och välj en mapp.
Välj mallen Blazor Server App .
Anteckning
Kontrollera att du redan har installerat .NET Core SDK 3.0+ så att Visual Studio kan identifiera målramverket korrekt.
Du kan också skapa ett projekt genom att dotnet new köra kommandot i .NET CLI:
.NET CLI
dotnetnew blazorserver -o BlazorChat
Lägg till en ny C#-fil med namnet BlazorChatSampleHub.cs och skapa en ny klass BlazorChatSampleHub som härleds från Hub klassen för chattappen. Mer information om hur du skapar hubbar finns i Skapa och använda hubbar.
Om du vill implementera SignalR-klienten skapar du en ny Razor-komponent som heter ChatRoom.razor under Pages mappen .
Använd filen ChatRoom.razor eller utför följande steg:
@page Lägg till direktivet och användningssatserna.
@inject Använd direktivet för att mata in NavigationManager tjänsten.
När du distribuerar Blazor-appen till Azure App Service rekommenderar vi att du använder Azure SignalR Service. Med Azure SignalR Service kan du skala upp en Blazor Server-app till ett stort antal samtidiga SignalR-anslutningar. Dessutom bidrar SignalR-tjänstens globala räckvidds- och högpresterande datacenter avsevärt till att minska svarstiden på grund av geografi.
Viktigt
I en Blazor Server-app underhålls användargränssnittstillstånd på serversidan, vilket innebär att en klibbig serversession krävs för att bevara tillståndet. Om det finns en enda appserver säkerställs klibbiga sessioner avsiktligt. Men om flera appservrar används kan klientförhandlingen och anslutningen omdirigeras till olika servrar, vilket kan leda till en inkonsekvent UI-tillståndshantering i en Blazor-app. Därför rekommenderar vi att du aktiverar klibbiga serversessioner enligt appsettings.json:
JSON
"Azure:SignalR:ServerStickyMode": "Required"
Högerklicka på projektet och gå till Publicera. Använd följande inställningar:
Mål: Azure
Specifikt mål: Alla typer av Azure App Service stöds.
App Service: Skapa eller välj App Service-instansen.
Lägg till Azure SignalR Service-beroendet.
När du har skapat publiceringsprofilen kan du se ett rekommendationsmeddelande om att lägga till Azure SignalR-tjänsten under Tjänstberoenden. Välj Konfigurera för att skapa en ny eller välj en befintlig Azure SignalR Service i fönstret.
Tjänstberoendet utför följande aktiviteter för att göra det möjligt för din app att automatiskt växla till Azure SignalR Service när den är i Azure:
Lägg till NuGet-paketreferensen för Azure SignalR Service.
Uppdatera profilegenskaperna för att spara beroendeinställningarna.
Konfigurera hemlighetsarkivet enligt ditt val.
Lägg till konfigurationen i appsettings.json för att göra din app till Azure SignalR Service som mål.
Publicera appen.
Nu är appen redo att publiceras. När publiceringsprocessen är klar startas appen automatiskt i en webbläsare.
Anteckning
Appen kan kräva lite tid för att starta på grund av startsvarstiden för Azure App Service-distributionen. Du kan använda webbläsarens felsökningsverktyg (vanligtvis genom att trycka på F12) för att säkerställa att trafiken har omdirigerats till Azure SignalR Service.
Konfigurera värdstartssammansättningen så att den använder Azure SignalR SDK. Redigera launchSettings.json och lägg till en konfiguration som i följande exempel i environmentVariables:
Ändra en mekanism för uppdatering av JavaScript-webbappar från återkommande avsökning till push-baserad arkitektur i realtid med SignalR Service, Azure Cosmos DB och Azure Functions. Använd Vue.js och JavaScript för att använda SignalR med hjälp av Visual Studio Code.
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.