我是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初始化的,但没有这样做。