Хорошо, так что добро пожаловать в V4 и .bot
файлы ! Вы (правильно) показывали нам скриншоты ваших секретов, которые были правильно настроены с помощью параметров приложения, но ваш загрузочный код не полагается на параметры приложения ... вместо этого он использует новый файл .bot
для загрузки учетных данных для конечной точки.
Позвольте мне начать с того, что это совершенно новая дополнительная технология. Я знаю, что примеры, как правило, отражают это в вашем лице, но вам не нужно принимать его, если у вас уже есть практики DevOps, которые отлично работают для поддержки и развертывания ваших ключей / секретов с помощью существующих механизмов, таких как переменные среды / настройки приложения.
Например, вы можете вырезать файл .bot
и изменить свой запуск, чтобы использовать настройки приложения, просто изменив регистрацию своего бота на:
public class Startup
{
private readonly IConfiguration _configuration;
public Startup(IConfiguration configuration)
{
// Ask for the configuration service to be injected so you can access config values (standard .NET Core 101 stuff)
_configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
}
public void ConfigureServices(IServiceCollection services)
{
services.AddBot<IAssistantBot>(options =>
{
// Load the values right out of configuration
options.CredentialProvider = new SimpleCredentialProvider(
_configuration.GetSection("MicrosoftAppId").Value,
_configuration.GetSection("MicrosoftAppPassword").Value);
// Catches any errors that occur during a conversation turn and logs them.
options.OnTurnError = async (context, exception) =>
{
await context.SendActivityAsync("Sorry, it looks like something went wrong.");
};
});
}
}
Как видите, кода для начала гораздо меньше, и он просто использует существующую систему конфигурации, предоставляемую .NET Core. Вы можете загружать его из файла appsettings.json, переменных среды, любых других хранилищ конфигурации, которые вы могли бы использовать в .NET Core.