/ / Wdrożony na botach Azure nie odpowiada - c #, botframework

Wdrożony na botach Azure nie odpowiada - c #, botframework

Zacząłem badać BotFramework i napotkałem jeden irytujący problem.

  1. Utworzono bota "Hello world".
    Tutaj, jeśli kod

    public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
    {
    if (activity.Type == ActivityTypes.Message)
    {
    ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
    // calculate something for us to return
    int length = (activity.Text ?? string.Empty).Length;
    
    // return our reply to the user
    Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
    await connector.Conversations.ReplyToActivityAsync(reply);
    }
    else
    {
    HandleSystemMessage(activity);
    }
    var response = Request.CreateResponse(HttpStatusCode.OK);
    return response;
    }
    

Działa dobrze lokalnie

  1. Wdrożono na platformie Azure.
  2. Ustaw prawidłowe parametry BotId, MicrosoftAppId i MicrosoftAppPassword w pliku web.config.
  3. Adres URL z moim botem http://funnyskypebot20171026010946.azurewebsites.net i wygląda na to, że działa

Ale kiedy próbuję "komunikować" się z bitem za pomocą emulatora kanałów programu Bot Framework, nie otrzymuję żadnych wiadomości ... Co może być nie tak? Proszę doradź.

Odpowiedzi:

2 dla odpowiedzi № 1

Zakładam, że już podążyłeś za krokami https://docs.microsoft.com/en-us/bot-framework/deploy-dotnet-bot-visual-studio do wdrożenia na platformę Azure.

Widziałeś to https://docs.microsoft.com/en-us/bot-framework/debug-bots-emulator w odniesieniu do debugowania zdalnie za pomocą ngrok?

Jeśli używasz Visual Studio, na pasku narzędzi,możesz kliknąć "Widok -> Eksplorator serwera". W "Azure -> App Service" powinieneś tam zobaczyć swoją grupę zasobów. Pod twoją grupą zasobów powinna pojawić się usługa Twojej aplikacji. Kliknij prawym przyciskiem myszy i wybierz "Dołącz debugger", aby wyświetlić wyjście ("Widok -> Dane wyjściowe") i debugować wdrożoną usługę aplikacji.


0 dla odpowiedzi nr 2

Wewnętrzny błąd serwera oznacza ogólnie, że jest jakiś problem z twoim kodem. Spróbuj debugować lokalnie używając ngrok. Możesz zmienić swój punkt końcowy w portal deweloperski do tego, który generuje ngrok, kiedy używasz tego polecenia ngrok http 3979 -host-header="localhost:3979" zmień port, na którym działa Twój bot.

Więcej informacji:
Post na blogu
Post na blogu