我在global.asax.cs文件中是否缺少用于连接到Azure Cosmos的依赖项?

时间:2019-01-06 17:35:30

标签: botframework azure-cosmosdb

我是Bot Framework的新手,并且结合了最佳实践,我一直在尝试连接到Azure Cosmos数据库以管理状态数据。

下面的代码可以毫无问题地进行编译,但是,一旦我尝试在Azure的“测试Web Bot”屏幕中测试该机器人,它就会获得Bot的授权,但无法连接,因此我无法对其进行测试数据库连接。

我一直在使用SDK的v3开发Bot,并尝试通过立即删除有关Cosmos DB的注释行来修改现成的方法,但是由于编译失败,因此一直在修改下面的代码,可以编译,但似乎不会启动Bot。

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);
        }
    }
}

我希望输出是Bot初始化的,但没有这样做。

0 个答案:

没有答案