web-dev-qa-db-fra.com

Comment résoudre l'erreur en tant que "erreur de serveur interne 500" dans Bot Framework Channel Emulator?

Je travaille sur la technologie du framework Bot. Récemment, Microsoft a annoncé la nouvelle version (V3) de Bot. J'avais déjà développé des bots en utilisant une ancienne version, maintenant j'essaye de mettre à jour mes bots vers une version plus récente. Pour que tout fonctionne correctement mais après avoir publié mon bot dans Azure, puis en utilisant l'URL de publication, j'essaie de tester l'émulateur de canal de la structure de bot (3.0.0.54) qui indique toujours "500, erreur de serveur interne". Mais quand j’ai ajouté le canal skype à mon bot, cela fonctionnera bien.

Seul le problème vient du fait que je teste dans l'émulateur de canal de structure de bot avec l'URL publiée de mon application de bot, c'est alors que j'ai eu l'erreur "Erreur de serveur interne".

Je pense qu'il peut y avoir un problème avec la dernière version de l'émulateur de canal de la structure bot

7
pradeep
  • Veuillez télécharger le fichier à partir de https://ngrok.com/download

  • Décompressez le fichier et utilisez la commande Invite pour exécuter la commande ci-dessous.

ngrok http -Host-header = réécrire 9000 

capture d'écran

  • Comme vu dans la copie d'écran URL de transfert avec https et le coller dans l'url de l'émulateur 
  • Le port de l'émulateur doit être en 9000 et l'url de l'émulateur doit contenir ngrok forwarding Https URL

Remarque: ngrok doit être à l'état d'exécution .si vous rencontrez la même erreur 500 lors de la prochaine tentative, veuillez recommencer à l'étape 1. Pour plus de références, .https // docs.botframework.com/en-us/tools/bot -framework-emulator/# navtitle

4
Sathish Neelamegam

J'ai découvert qu'une seule méthode public en dehors de Post in Controller permet à Bot Framework de lancer 500 InternalServerError. Conservez simplement la méthode private et la méthode publique de publication dans votre contrôleur et corrigez-la.

2
Kevin

la solution de ngrok n'a pas fonctionné pour moi. Je viens de commenter la botAuthentication puis ça a fonctionné pour moi localement.

  //[BotAuthentication]
    public class MessagesController : ApiController
    {
1
Vikram

En poursuivant le débogage, vous ne devez pas désactiver l’appid et le mot de passe, mais les laisser vides et reconstruire les mêmes, vous pourrez déboguer via l’émulateur

Ne vous contentez pas de désactiver le BotId, AppID, mot de passe plutôt les rendre vides comme indiqué ci-dessous

<add key="BotId" value="" />
<add key="MicrosoftAppId" value="" />
<add key="MicrosoftAppPassword" value="" />
1

Il semble que si vous déployez votre bot sur le nuage et essayez de le tester à partir de l'émulateur, cela produira cette erreur. L’émulateur semblait fonctionner dans 2 cas:

1- Localhost avec sécurité désactivée (supprimer appid et mot de passe app)

2- localhost avec la sécurité activée (ajouter appid et mot de passe app)

les deux points finaux via http uniquement parce que c'est localhost. Si vous déployez sur le cloud, vous pouvez le tester dans l'émulateur disponible sur le Bot Portal. Assurez-vous que le noeud final du bot hébergé est activé pour https.

J'ai suivi les étapes de ce guide de dépannage et le problème a été résolu: https://docs.Microsoft.com/en-us/bot-framework/troubleshoot-authentication-problems

Je n'ai pas compris ce qui a réellement causé le problème. Ce que j'ai remarqué, c'est que: l'émulateur de bureau ne fonctionne qu'avec localhost. 

0
Rami Sarieddine

Le développeur a posté une réponse sur ce fil de discussion .

En gros, vous pouvez taper 'désactiver' pour désactiver AppId/AppPassword 

0
Michael Washington

Ils viennent de publier une version mise à jour du framework (3.0.1) qui traitait de quelques problèmes introduits avec 3.0.0. Essayez de mettre à jour en 3.0.1 et voyez si cela résoudra votre problème (cela corrige le mien). source

Vous devrez peut-être aussi suivre ce tutoriel et utiliser ngrok pour vous permettre d’accéder à votre chat publié depuis l’émulateur. Il y a une capture d'écran dans ce tutoriel qui montre que le BotId est utilisé dans l'émulateur, ce n'est pas obligatoire pour que vous puissiez l'omettre. 

0
pl0x