Мне не хватает зависимости в моем файле global.asax.cs для подключения к Azure Cosmos? - PullRequest
0 голосов
/ 06 января 2019

Я новичок в Bot Framework и придерживаюсь передового опыта. Я пытался подключиться к базе данных Azure Cosmos для управления данными состояния.

Приведенный ниже код компилируется без каких-либо проблем, но как только я пытаюсь протестировать бота на экране Test Web Bot в Azure, он авторизуется с ботом, но не подключается, поэтому я не могу проверить подключение к базе данных.

Я разрабатывал бота, используя v3 SDK, и попытался изменить из коробки, удалив строку комментария относительно Cosmos DB, но это не удалось скомпилировать, поэтому возился с кодом ниже, который компилируется, но не запускает бота.

using System;
using Autofac;
using System.Web.Http;
using System.Configuration;
using System.Reflection;
using Microsoft.Bot.Builder.Azure;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.Dialogs.Internals;
using Microsoft.Bot.Connector;

namespace SimpleEchoBot
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            // Bot Storage: This is a great spot to register the private state storage for your bot. 
            // We provide adapters for Azure Table, CosmosDb, SQL Azure, or you can implement your own!
            // For samples and documentation, see: https://github.com/Microsoft/BotBuilder-Azure

            var uri = new Uri(ConfigurationManager.AppSettings["uri"]);
            var key = ConfigurationManager.AppSettings["accesskey"];
            var store = new DocumentDbBotDataStore(uri, key);

            Conversation.UpdateContainer(
                builder =>
                {
                    builder.Register(c => store)
                        .Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)
                        .AsSelf()
                        .SingleInstance();
                    builder.Register(c => new CachingBotDataStore(store, CachingBotDataStoreConsistencyPolicy.ETagBasedConsistency))
                        .As<IBotDataStore<BotData>>()
                        .AsSelf()
                        .InstancePerLifetimeScope();
                });
            GlobalConfiguration.Configure(WebApiConfig.Register);
        }
    }
}

Я ожидаю, что вывод будет таким, что бот инициализируется, но не может это сделать.

...