Debuggen eines Bots über einem beliebigen Kanal mithilfe von ngrokDebug a bot from any channel using ngrok

gilt für: SDK v4APPLIES TO: SDK v4

Wenn sich der bot in der Entwicklungsphase befindet, können Sie den bot lokal über eine IDE wie Visual Studio oder Visual Studio Code Debuggen.When your bot is in development, you can debug your bot locally using an IDE such as Visual Studio or Visual Studio Code. Sie können einen bot auch mit dem bot Framework-Emulator Debuggen , indem Sie lokal mit dem bot chatten und die Nachrichten untersuchen, die ihr bot sendet und empfängt.You can also debug a bot using the Bot Framework Emulator by chatting with your bot locally and inspect the messages your bot sends and receives. Sie können sogar geringfügige Aktualisierungen Ihres botcodes durchführen und das Feature zum Debuggen eines Bots mit Untersuchungs Middlewareaktivieren.You can even make slight updates of your bot's code and enable the feature to debug a bot with inspection middleware.

Wenn Ihr bot bereits in der Produktion ist, können Sie den bot über einen beliebigen Kanal mithilfe von ngrok Debuggen.When your bot is already in production, you can debug your bot from any channel using ngrok. Die nahtlose Verbindung Ihres bot mit mehreren Kanälen ist ein wichtiges Feature, das in bot Framework zur Verfügung steht.The seamless connection of your bot to multiple channels is a key feature available in Bot Framework. In diesem Artikel erfahren Sie, wie Sie Ihren bot über einen beliebigen Kanal, für den Ihr produktionsbot konfiguriert ist, lokal debuggen, indem Sie ngrok verwenden.In this article, we will show you how to locally debug your bot from any channel your production bot is configured for, using ngrok. Wir haben im gesamten Artikel einen Echo bot -Beispiel verwendet, der mit Microsoft Teams Channel verbunden ist.We used an EchoBot sample connected to Microsoft Teams Channel throughout the article for instruction.

VoraussetzungenPrerequisites

Ausführen von ngrokRun ngrok

ngrok ist eine plattformübergreifende Anwendung, mit der Sie einen Webserver, der auf dem lokalen Computer ausgeführt wird, im Internet verfügbar machen können.ngrok is a cross-platform application that "allows you to expose a web server running on your local machine to the internet." Im wesentlichen verwenden wir ngrok zum Weiterleiten von Nachrichten von externen Kanälen im Web direkt an unseren lokalen Computer, um das Debuggen zu ermöglichen, im Gegensatz zum Standard-Messaging Endpunkt, der in der Azure-Portal konfiguriert ist.Essentially, what we'll be doing is using ngrok to forward messages from external channels on the web directly to our local machine to allow debugging, as opposed to the standard messaging endpoint configured in the Azure portal.

  1. Öffnen Sie ein Terminal, und navigieren Sie zu dem Ordner, in dem sich die ausführbare ngrok -DateiOpen a terminal and navigate to the folder where your ngrok executable is.

  2. Führen Sie ngrok mit dem folgenden Befehl aus, um einen neuen Tunnel zu erstellen.Run ngrok with the following command to create a new tunnel.

    ngrok http 3978 -host-header="localhost:3978"
    

    Hinweis

    Beachten Sie, dass es sich bei dem angegebenen Port um den Port handelt, auf dem der bot ausgeführt wird.Please note that the port specified is the port your bot is running on. Sie können einen beliebigen localhost-Port verwenden.You may use any localhost port you'd like.

  3. Wenn ngrok gestartet wird, kopieren Sie die öffentliche Weiterleitungs-URL, und speichern Sie Sie später.When ngrok starts, copy and save the public forwarding URL for later.

    ngrok-Weiterleitungs-URLngrok forwarding url

Konfigurieren im Azure-PortalConfigure in Azure portal

Melden Sie sich während der Ausführung von ngrok bei Ihrem Azure-Portal an, und zeigen Sie Ihre boteinstellungen an, um eine Konfiguration durchzuführen.While ngrok is running, login to your Azure portal and view your bot settings to do some configuration.

  1. Wählen Sie Ihre botkanalregistrierung aus, die mit Ihrem lokalen bot verbunden ist.Select your Bot Channels Registration connected to your local bot.

  2. Scrollen Sie nach unten zu Konfiguration.Scroll down to Configuration. Kopieren Sie die ngrok -Weiterleitungs-URL, und fügen Sie Sie im Feld Messaging Endpunkt ein.Copy and paste the ngrok forwarding URL in the Messaging endpoint field. Stellen Sie sicher, dass Sie "/API/Messages" am Ende der URL beibehalten.Ensure that you maintain "/api/messages" at the end of the URL.

    Messaging Endpunktmessaging endpoint

  3. Scrollen Sie nach oben, und wählen Sie Speichern.Scroll up and select Save.

TestTest

An diesem Punkt werden eingehende Nachrichten von externen Kanälen an Ihren bot gesendet, die nun an Ihren lokalen bot gesendet werden.At this point, incoming messages from to your bot from external channels will now be sent to your local bot. Der Beispiel-bot, den wir zur Veranschaulichung verwenden, ist bereits Live für Microsoft Teams konfiguriert.The sample bot we'll use to demonstrate this is already configured live for Microsoft Teams. Weitere Informationen finden Sie unter Verbinden eines Bots mit Microsoft Teams über das Verbinden eines lokalen Bots mit Microsoft Teams Channel.Read Connect a bot to Microsoft Teams about connecting a local bot with Microsoft Teams channel.

Teams (Channel)teams channel

Lokal können Sie Breakpoints in Visual Studio festlegen.Locally, you can set breakpoints in Visual Studio. Wenn Sie die Text-Eigenschaft aus dem eingehenden Aktivitäts Objekt erweitern, sehen Sie, dass die Nachricht, die Sie den bot von Teams gesendet haben, lokal abgefangen wird, damit Sie Debuggen können.Expanding the text property from the incoming activity object, you will see that the message you sent the bot from teams is being intercepted locally for you to debug.

Haltepunkte festlegenset breakpoints

Von hier aus können Sie normal Debuggen und den Code Schritt für Schritt ausführen.From here you can debug normally, and run your code step by step. Sie können diesen verwenden, um den bot von einem beliebigen Kanal zu debuggen.You can use this to debug your bot from any channel.

Debug fortsetzendebug continue

Zusätzliche InformationenAdditional information