/ / Implantado no bot do Azure não responde - c #, botframework

Implantado no bot do Azure não responde - c #, botframework

Eu comecei a investigar o BotFramework e encontrei um problema chato.

  1. Criado bot "Olá mundo".
    Aqui se o código

    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;
    }
    

Ele funciona bem localmente

  1. Implantado no Azure.
  2. Defina os parâmetros BotId, MicrosoftAppId e MicrosoftAppPassword corretos no web.config.
  3. URL com meu bot é http://funnyskypebot20171026010946.azurewebsites.net e parece que funciona

Mas quando eu tento "comunicar" com bit via Bot Framework Channel Emulator eu não recebo nenhuma mensagem de volta ... O que pode estar errado ? Por favor informar.

Respostas:

2 para resposta № 1

Eu suponho que você já seguiu os passos em https://docs.microsoft.com/en-us/bot-framework/deploy-dotnet-bot-visual-studio para implantação no Azure.

Você viu isso https://docs.microsoft.com/en-us/bot-framework/debug-bots-emulator com relação à depuração remotamente usando o ngrok?

Se você estiver usando o Visual Studio, na barra de ferramentas,você pode clicar em "Exibir -> Gerenciador de Servidores". Em "Azure -> App Service", você deve ver seu grupo de recursos lá. No seu grupo de recursos, você deve ver o serviço do seu aplicativo. Clique com o botão direito do mouse e selecione "Anexar depurador" para poder visualizar a saída ("Exibir -> Saída") e depurar o serviço de aplicativo implantado.


0 para resposta № 2

Erro interno do servidor geralmente significa que há algum tipo de problema com seu código. Tente depurar localmente usando ngrok. Você pode alterar seu endpoint no portal dev para o que o ngrok gera quando você usa esse comando ngrok http 3979 -host-header="localhost:3979" mude para a porta em que seu bot é executado.

Mais informações:
Postagem do blog
Postagem do blog