Freigeben über


.NET Aspire Unterstützung für AzureAzure SignalR Service

In diesem Artikel erfahren Sie, wie Sie .NET Aspire verwenden, um eine AzureAzure SignalR Service Ressource auszudrücken. Das Demonstrieren, wie eine SignalR-App geschrieben wird, liegt außerhalb des Umfangs dieses Artikels. Stattdessen erkunden Sie eine App, die bereits geschrieben wurde, und wie sie mit .NET.NET Aspireverbunden ist. Wie andere Azure Ressourcen im .NET AspireApp-Modellprofitieren Sie von der einfachen Bereitstellung und Implementierung mit dem Azure Developer CLI (azd). Weitere Informationen finden Sie unter ein .NET Aspire Projekt auf Azure Container Apps mithilfe von azd bereitstellen (umfassender Leitfaden).

Hub-Host

Das Hubhostprojekt ist dort, wo Sie Ihren SignalR-Hub hosten, das Projekt, das beispielsweise AddSignalR() und MapHub aufruft.

Installieren des NuGet-Pakets

Sie müssen das 📦 MicrosoftAzureSignalR NuGet-Paket installieren.

dotnet add package Microsoft.Azure.SignalR

Weitere Informationen finden Sie unter dotnet add package oder Verwalten von Paketabhängigkeiten in .NET Anwendungen.

Ausdrücken der Ressource

Welches Projekt Sie zum Hosten Ihrer Hub verwenden, ist der Ort, an dem Sie Ihre AzureAzure SignalR Service-Ressource einbinden. Das folgende Beispiel veranschaulicht die Verwendung der AddNamedAzureSignalR Erweiterungsmethode, die in der AddSignalR-Methode verkettet ist:

var builder = WebApplication.CreateBuilder(args);

builder.AddServiceDefaults();

builder.Services.AddProblemDetails();

builder.Services.AddSignalR()
                .AddNamedAzureSignalR("signalr");

var app = builder.Build();

app.UseExceptionHandler();

app.MapHub<ChatHub>(HubEndpoints.ChatHub);

app.MapDefaultEndpoints();

app.Run();

Durch das Aufrufen von AddNamedAzureSignalR wird AzureSignalR mit dem angegebenen Namen hinzugefügt. Die Verbindungszeichenfolge wird aus ConnectionStrings_{name}entnommen, die Einstellungen werden aus dem Abschnitt Azure:SignalR:{name} geladen.

App-Host

Im -App-Hostprojektdrücken Sie ein AzureSignalRResource mit der AddAzureSignalR-Methode aus. Im folgenden Beispiel wird veranschaulicht, wie auf die Ressource vom verbrauchenden Projekt verwiesen wird, in diesem Fall das Hub Hostprojekt:

var builder = DistributedApplication.CreateBuilder(args);

var signalr = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureSignalR("signalr")
    : builder.AddConnectionString("signalr");

var apiService = builder.AddProject<Projects.SignalR_ApiService>("apiservice")
                        .WithReference(signalr);
  
builder.AddProject<Projects.SignalR_Web>("webfrontend")
       .WithReference(apiService);

builder.Build().Run();

Im vorherigen Code:

  • Es wird überprüft, ob sich der Ausführungskontext des builder im Veröffentlichungsmodus befindet.
  • Beim Veröffentlichen wird die Methode AddAzureSignalR aufgerufen, um AzureSignalRResourcedarzustellen.
  • Wenn keine Veröffentlichung erfolgt, wird die AddConnectionString-Methode aufgerufen, um eine IResourceWithConnectionString an eine vorhandene Ressource zu übermitteln.
  • Auf die signalr Ressource wird vom Hub Hostprojekt verwiesen, das in diesem Fall als apiServicebekannt ist.
  • Die Projektressource apiService wird vom Projekt SignalR_Web referenziert.

Siehe auch