J'ai utilisé IIS pour héberger localement mon bot comme ceci: https: // localhost/MyBot. Actuellement, lorsque j'essaie de me connecter à mon bot dans l'émulateur de bot, j'obtiens une erreur POST 500 et je suis incapable d'envoyer des messages. Je suis nouveau à cela et la plupart de la documentation pour la publication d'un bot à un serveur local est limitée. Je peux cependant ouvrir ce lien avec succès depuis mon navigateur. Est-ce que je rencontre cette erreur parce que je n'ai pas le répertoire https: // localhost/Bridget/api/messages/url? J'ai essayé de créer des répertoires virtuels dans IIS mais cela n'a pas aidé à résoudre mon problème. Ai-je besoin d'un logiciel de tunnellisation? Existe-t-il un didacticiel simple permettant de déployer localement un bot en utilisant IIS et de s'y connecter via l'émulateur de bot?POST 500 Erreur Bot Emulator Localhost pour Bot hébergé IIS
Voici l'erreur que je vois dans l'émulateur:
Utilisation d'un logiciel à effet tunnel ngrok ce que je vois:
Voici le code que le traitement POST entrant messages:
/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
// Strip any @mentions
Mention[] m = activity.GetMentions();
for (int x = 0; x < m.Length; x++)
{
if (m[x].Mentioned.Id == activity.Recipient.Id)
{
if (m[x].Text != null)
{
activity.Text = activity.Text.Replace(m[x].Text, "");
}
}
}
await stateClient.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, userData);
await Conversation.SendAsync(activity,() => new Dialogs.RootDialog());
}
else if (activity.Type == ActivityTypes.Invoke)
{
// Some Code...
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
bot Vous pouvez être contacté que vous obtenez le 'conversationUpdate' dans l'émulateur il est donc une bonne chose, maintenant vous avez des problèmes avec le traitement/répondre à un message entrant. Peut-être que vous devriez essayer de répondre avec un écho de base en premier. Et peut-être connecter l'exception sur un fichier ou quelque part, afin de pouvoir voir quelles sont ces erreurs du "côté serveur" –