Bot Emulator Framework Не удалось разрешить службу - PullRequest
1 голос
/ 22 октября 2019

Я следую учебному пособию по Azure EchoBot для добавления состояний, и у меня возникла проблема с запуском бота в эмуляторе Bot Framework. (Бот может подключиться. EchoBot без каких-либо модификаций будет работать нормально). Это то, что я добавил в функцию ConfigureServices в моем Startup.cs

public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        // Create the Bot Framework Adapter.
        services.AddSingleton<IBotFrameworkHttpAdapter, AdapterWithErrorHandler>();

        //// Create the User state
        services.AddSingleton<UserState>();

        //// Create the Conversation State
        services.AddSingleton<ConversationState>();

        // Create the bot as a transient. In this case the ASP Controller is expecting an IBot.
        services.AddTransient<IBot, EchoBot>();
    }

Это то, что я добавил в EchoBot.cs

private readonly BotState _userState;
    private readonly BotState _conversationState;

    public EchoBot (ConversationState conversationState, UserState userState)
    {
        _conversationState = conversationState;
        _userState = userState;
    }

    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        var conversationStateAccessors = _conversationState.CreateProperty<ConversationFlow>(nameof(ConversationFlow));
        var flow = await conversationStateAccessors.GetAsync(turnContext, () => new ConversationFlow());
        var userStateAccessors = _userState.CreateProperty<UserProfile>("User");
        var profile = await userStateAccessors.GetAsync(turnContext, () => new UserProfile());

        await _conversationState.SaveChangesAsync(turnContext);
        await _userState.SaveChangesAsync(turnContext);
        await turnContext.SendActivityAsync(MessageFactory.Text($"Echo: {turnContext.Activity.Text}"), cancellationToken);
    }

Ошибка, которую я получаю в эмуляторе, это просто POST 500 directline.conversationUpdate, и это скриншот ошибки, которую я получаю с консоли бота:

There appears to be dependency injection issues for resolving the services I added to Configure Services

Спасибо! Если потребуется какое-либо разъяснение, я сделаю все возможное, чтобы обновить его.

...