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
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
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
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.
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
{
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="" />
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.
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
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.