azure - POST 到机器人的端点失败,HTTP 状态为 502
问题描述
我开发了一个聊天机器人botframework
,它工作正常,部署在天蓝色也很好。
然后我添加了KeyVault
服务并再次发布,但这次我收到 502 错误,并且在appInsights
此日志中:
Microsoft.Bot.Schema.BotException:
at Microsoft.Bot.ChannelConnector.BotAPI+<PostActivityToBotAsync>d__31.MoveNext (Microsoft.Bot.Base.ChannelConnector, Version=3.2.3.7, Culture=neutral, PublicKeyToken=null)
Inner exception System.Exception handled at Microsoft.Bot.ChannelConnector.BotAPI+<PostActivityToBotAsync>d__31.MoveNext:
at Microsoft.Bot.ChannelConnector.BotAPI.ThrowOnFailedStatusCode (Microsoft.Bot.Base.ChannelConnector, Version=3.2.3.7, Culture=neutral, PublicKeyToken=null)
at Microsoft.Bot.ChannelConnector.BotAPI+<PostActivityToBotAsync>d__31.MoveNext (Microsoft.Bot.Base.ChannelConnector, Version=3.2.3.7, Culture=neutral, PublicKeyToken=null)
当我删除(注释部分)实现 KeyVault 服务的代码时,它再次起作用:
public static IWebHost CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((ctx, builder) =>
{
// var keyVaultEndpoint = GetKeyVaultEndpoint();
// if (!string.IsNullOrEmpty(keyVaultEndpoint))
// {
// var azureServiceTokenProvider = new AzureServiceTokenProvider();
// var keyVaultClient = new KeyVaultClient(new VaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
// builder.AddAzureKeyVault(keyVaultEndpoint, keyVaultClient, new DefaultKeyVaultSecretManager());
// }
}
).UseStartup<Startup>()
.Build();
private static string GetKeyVaultEndpoint() => "https://XXX.vault.azure.net/";
这些是我已经实现的Docs中的步骤和代码
解决方案
This is typically because the bot times out. The bot needs to respond within 15 seconds to the direct line channel. You can do further debugging/logging/testing to see if this is the scenario in this case. You can also use Ngrok to debug locally to see if needed.
推荐阅读
- c - 在 C 中将子 pid 打印到标准输出
- node.js - LokiJs 集合上的芒果查询更改了集合的大小
- bash - Remove last character of every nth line in place
- kubernetes - kube-state-metrics 会将指标保存在内存中多长时间?
- java - 热门将多个项目添加到 Listview simple_list_item_1
- html - 设置div的宽度
- firebase - 为什么我会收到有关节点版本的警告?
- mysql - 使用 MySql REGEX 仅获取包含单个或两位数字的单个数字字符串
- javascript - 如何从jsondata中获取key的值
- c - 是否可以强制函数参数在 C 中保持不变?