Schnellstart: Erstellen eines Chatraums mit ASP.NET und SignalR ServiceQuickstart: Create a chat room with ASP.NET and SignalR Service

Azure SignalR Service basiert auf SignalR für ASP.NET Core 2.0. Diese Version ist nicht zu 100 % kompatibel mit ASP.NET SignalR.Azure SignalR Service is based on SignalR for ASP.NET Core 2.0, which is not 100% compatible with ASP.NET SignalR. In Azure SignalR Service wurde das ASP.NET SignalR-Datenprotokoll basierend auf den neuesten ASP.NET Core-Technologien neu implementiert.Azure SignalR Service re-implemented ASP.NET SignalR data protocol based on the latest ASP.NET Core technologies. Bei der Verwendung von Azure SignalR Service für ASP.NET SignalR werden einige ASP.NET SignalR-Funktionen nicht mehr unterstützt, z.B. gibt Azure SignalR keine Nachrichten wieder, wenn der Client erneut eine Verbindung herstellt.When using Azure SignalR Service for ASP.NET SignalR, some ASP.NET SignalR features are no longer supported, for example, Azure SignalR does not replay messages when the client reconnects. Der Forever Frame-Transport und JSONP werden ebenfalls nicht unterstützt.Also, the Forever Frame transport and JSONP are not supported. Einige Codeänderungen und die richtige Version der abhängigen Bibliotheken sind erforderlich, damit die ASP.NET SignalR-Anwendung mit SignalR Service funktioniert.Some code changes and proper version of dependent libraries are needed to make ASP.NET SignalR application work with SignalR Service.

Eine vollständige Liste des Funktionsvergleichs zwischen ASP.NET SignalR und ASP.NET Core SignalR finden Sie im Dokument zu den Versionsunterschieden.Refer to the version differences doc for a complete list of feature comparison between ASP.NET SignalR and ASP.NET Core SignalR.

In diesem Schnellstart erfahren Sie, wie Sie ASP.NET und Azure SignalR Service für eine ähnliche Chatraumanwendung verwenden.In this quickstart, you will learn how to get started with the ASP.NET and Azure SignalR Service for a similar Chat Room application.

Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

Anmelden bei AzureSign in to Azure

Melden Sie sich mit Ihrem Azure-Konto beim Azure-Portal an.Sign in to the Azure portal with your Azure account.

Erstellen einer Instanz des Azure SignalR-DienstsCreate an Azure SignalR Service instance

Ihre Anwendung stellt eine Verbindung mit einer Instanz des SignalR-Diensts in Azure her.Your application will connect to a SignalR Service instance in Azure.

  1. Klicken Sie in der linken oberen Ecke des Azure-Portals auf die Schaltfläche „Neu“.Select the New button found on the upper left-hand corner of the Azure portal. Geben Sie im Bildschirm „Neu“ die Angabe SignalR-Dienst in das Suchfeld ein, und drücken Sie die EINGABETASTE.In the New screen, type SignalR Service in the search box and press enter.

    Suchen nach SignalR-Dienst

  2. Wählen Sie SignalR-Dienst aus den Suchergebnissen aus, und wählen Sie dann Erstellen aus.Select SignalR Service from the search results, then select Create.

  3. Geben Sie folgende Einstellungen ein.Enter the following settings.

    EinstellungSetting Empfohlener WertSuggested value BESCHREIBUNGDescription
    RessourcennameResource name Global eindeutiger NameGlobally unique name Der Name, der die neue Instanz des SignalR -Diensts identifiziert.Name that identifies your new SignalR Service instance. Gültige Zeichen sind a-z, 0-9 und -.Valid characters are a-z, 0-9, and -.
    AbonnementSubscription Ihr AbonnementYour subscription Das Abonnement, unter dem diese neue Instanz des SignalR-Diensts erstellt wird.The subscription under which this new SignalR Service instance is created.
    RessourcengruppeResource Group myResourceGroupmyResourceGroup Der Name für die neue Ressourcengruppe, in der Ihre Instanz des SignalR-Diensts erstellt werden soll.Name for the new resource group in which to create your SignalR Service instance.
    LocationLocation USA (Westen)West US Wählen Sie eine Region in Ihrer Nähe aus.Choose a region near you.
    PreisstufePricing tier KostenlosFree Testen Sie den Azure SignalR-Dienst kostenlos.Try Azure SignalR Service for free.
    EinheitenanzahlUnit count Nicht zutreffendNot applicable Die Einheitenanzahl gibt an, wie viele Verbindungen Ihre Instanz des SignalR-Diensts akzeptieren kann.Unit count specifies how many connections your SignalR Service instance can accept. Dies kann nur im Tarif „Standard“ konfiguriert werden.It is only configurable in the Standard tier.
    DienstmodusService mode ServerlosServerless Zur Verwendung mit Azure Functions oder der REST-API.For use with Azure Functions or REST API.

    Erstellen des SignalR-Diensts

  4. Wählen Sie Erstellen aus, um mit der Bereitstellung der Instanz des SignalR-Diensts zu beginnen.Select Create to start deploying the SignalR Service instance.

  5. Nachdem die Instanz bereitgestellt wurde, öffnen Sie sie im Portal, und navigieren Sie zur Seite „Einstellungen“.After the instance is deployed, open it in the portal and locate its Settings page. Ändern Sie die Einstellung des Dienstmodus nur dann in Serverlos, wenn Sie Azure SignalR Service über eine Azure Functions-Bindung oder REST-API verwenden.Change the Service Mode setting to Serverless only if you are using Azure SignalR Service through Azure Functions binding or REST API. Behalten Sie andernfalls die Einstellung Klassisch oder Standard bei.Leave it in Classic or Default otherwise.

Der serverlose Modus wird für ASP.NET SignalR-Anwendungen nicht unterstützt.Serverless mode is not supported for ASP.NET SignalR applications. Verwenden Sie immer Standard oder Klassisch für die Azure SignalR Service-Instanz.Always use Default or Classic for the Azure SignalR Service instance.

Sie können die in diesem Schnellstart verwendeten Azure-Ressourcen auch mit Erstellen eines SignalR Service-Skripts erstellen.You can also create Azure resources used in this quickstart with Create a SignalR Service script.

Klonen der BeispielanwendungClone the sample application

Während der Dienst bereitgestellt wird, arbeiten wird mit dem Code.While the service is deploying, let's switch to working with code. Klonen Sie die Beispiel-App von GitHub, legen Sie die Verbindungszeichenfolge des SignalR-Diensts fest, und führen Sie die Anwendung lokal aus.Clone the sample app from GitHub, set the SignalR Service connection string, and run the application locally.

  1. Öffnen Sie ein Git-Terminalfenster.Open a git terminal window. Wechseln Sie in einen Ordner, in dem Sie das Beispielprojekt klonen möchten.Change to a folder where you want to clone the sample project.

  2. Führen Sie den folgenden Befehl aus, um das Beispielrepository zu klonen.Run the following command to clone the sample repository. Dieser Befehl erstellt eine Kopie der Beispiel-App auf Ihrem Computer.This command creates a copy of the sample app on your computer.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

Konfigurieren und Ausführen der Chatraum-Web-AppConfigure and run Chat Room web app

  1. Starten Sie Visual Studio, und öffnen Sie die Projektmappe im Ordner aspnet-samples/ChatRoom/ des geklonten Repositorys.Start Visual Studio and open the solution in the aspnet-samples/ChatRoom/ folder of the cloned repository.

  2. Suchen Sie im Browser, in dem das Azure-Portal geöffnet ist, nach der von Ihnen erstellten Instanz, und wählen Sie diese aus.In the browser where the Azure portal is opened, find and select the instance you created.

  3. Wählen Sie Schlüssel aus, um die Verbindungszeichenfolgen für die SignalR-Dienstinstanz anzuzeigen.Select Keys to view the connection strings for the SignalR Service instance.

  4. Wählen Sie die primäre Verbindungszeichenfolge aus, und kopieren Sie diese.Select and copy the primary connection string.

  5. Legen Sie nun die Verbindungszeichenfolge in der Datei „web.config“ fest.Now set the connection string in the web.config file.

    <configuration>
    <connectionStrings>
        <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/>
    </connectionStrings>
    ...
    </configuration>
    
  6. In Startup.cs müssen Sie anstelle von MapSignalR() MapAzureSignalR({your_applicationName}) aufrufen und die Verbindungszeichenfolge übergeben, damit die Anwendung eine Verbindung mit dem Dienst herstellt, anstatt SignalR selbst zu hosten.In Startup.cs, instead of calling MapSignalR(), you need to call MapAzureSignalR({your_applicationName}) and pass in connection string to make the application connect to the service instead of hosting SignalR by itself. Ersetzen Sie {YourApplicationName} durch den Namen Ihrer Anwendung.Replace {YourApplicationName} to the name of your application. Dieser Name ist ein eindeutiger Name, um diese Anwendung von Ihren anderen Anwendungen zu unterscheiden.This name is a unique name to distinguish this application from your other applications. Sie können this.GetType().FullName als Wert verwenden.You can use this.GetType().FullName as the value.

    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        app.MapAzureSignalR(this.GetType().FullName);
    }
    

    Sie müssen auch auf das Dienst-SDK verweisen, bevor Sie diese APIs verwenden.You also need to reference the service SDK before using these APIs. Öffnen Sie Extras | NuGet-Paket-Manager | Paket-Manager-Konsole, und führen Sie den folgenden Befehl aus:Open the Tools | NuGet Package Manager | Package Manager Console and run command:

    Install-Package Microsoft.Azure.SignalR.AspNet
    

    Abgesehen von diesen Änderungen bleibt alles andere gleich. Sie können noch immer die Hubschnittstelle verwenden, mit der Sie bereits vertraut sind, um Geschäftslogik zu schreiben.Other than these changes, everything else remains the same, you can still use the hub interface you're already familiar with to write business logic.

    Hinweis

    In der Implementierung wird ein Endpunkt /signalr/negotiate für die Aushandlung durch das Azure SignalR Service SDK bereitgestellt.In the implementation an endpoint /signalr/negotiate is exposed for negotiation by Azure SignalR Service SDK. Er gibt eine spezielle Aushandlungsantwort zurück, wenn Clients versuchen, eine Verbindung herzustellen, und leitet Clients an den in der Verbindungszeichenfolge definierten Dienstendpunkt weiter.It will return a special negotiation response when clients try to connect and redirect clients to service endpoint defined in the connection string.

  7. Drücken Sie F5, um das Projekt im Debugmodus auszuführen.Press F5 to run the project in debug mode. Sie können erkennen, dass die Anwendung lokal ausgeführt wird.You can see the application runs locally. Anstatt eine SignalR-Laufzeit durch die Anwendung selbst zu hosten, wird nun eine Verbindung mit Azure SignalR Service hergestellt.Instead of hosting a SignalR runtime by application itself, it now connects to the Azure SignalR Service.

Bereinigen von RessourcenClean up resources

Wenn Sie diese App nicht weiter verwenden möchten, löschen Sie alle von diesem Schnellstart erstellten Ressourcen. Führen Sie dazu folgende Schritte durch, damit keine Gebühren anfallen:If you're not going to continue to use this app, delete all resources created by this quickstart with the following steps so you don't incur any charges:

  1. Klicken Sie ganz links im Azure-Portal auf Ressourcengruppen und anschließend auf die erstellte Ressourcengruppe.In the Azure portal, select Resource groups on the far left, and then select the resource group you created. Alternativ können Sie das Suchfeld verwenden, um nach der Ressourcengruppe anhand ihres Namens zu suchen.Alternatively, you may use the search box to find the resource group by its name.

  2. Wählen im Fenster, das geöffnet wird, die Ressourcengruppe aus, und klicken Sie dann auf Ressourcengruppe löschen.In the window that opens, select the resource group, and then click Delete resource group.

  3. Geben Sie in dem neuen Fenster den Namen der zu löschenden Ressourcengruppe ein, und klicken Sie dann auf Löschen.In the new window, type the name of the resource group to delete, and then click Delete.

Wichtig

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden also dauerhaft gelöscht.Deleting a resource group is irreversible and that the resource group and all the resources in it are permanently deleted. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen.Make sure that you do not accidentally delete the wrong resource group or resources. Falls Sie die Ressourcen zum Hosten dieses Beispiels in einer vorhandenen Ressourcengruppe erstellt haben, die beizubehaltende Ressourcen enthält, können Sie die Ressourcen einzeln über das jeweilige Blatt löschen, statt die Ressourcengruppe zu löschen.If you created the resources for hosting this sample inside an existing resource group that contains resources you want to keep, you can delete each resource individually from their respective blades instead of deleting the resource group.

Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.Sign in to the Azure portal and click Resource groups.

Geben Sie im Textfeld Nach Name filtern... den Namen Ihrer Ressourcengruppe ein.In the Filter by name... textbox, type the name of your resource group. In dieser Schnellstartanleitung wurde eine Ressourcengruppe mit dem Namen SignalRTestResources verwendet.The instructions for this quickstart used a resource group named SignalRTestResources. Klicken Sie in Ihrer Ressourcengruppe in der Ergebnisliste auf ... und dann auf Ressourcengruppe löschen.On your resource group in the result list, click ... then Delete resource group.

Löschen

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.After a few moments, the resource group and all of its contained resources are deleted.

Nächste SchritteNext steps

In diesem Schnellstart haben Sie eine neue Azure SignalR Service-Ressource erstellt und diese mit einer ASP.NET-Web-App verwendet.In this quickstart, you created a new Azure SignalR Service resource and used it with an ASP.NET web app. Als nächstes erfahren Sie, wie Sie Echtzeitanwendungen mit Azure SignalR Service mit ASP.NET Core entwickeln.Next, learn how to develop real-time applications using Azure SignalR Service with ASP.NET Core.