实现了自定义数据存储,机器人仍然调用state.botframework.com

时间:2019-01-08 11:30:59

标签: c# azure botframework azure-bot-service

摘要:

我们在C#Bot中实现了TableBotDataStore,但该机器人仍在以某种方式调用已弃用的State API。

上下文:

在Application Insights中,我可以看到我们的机器人正在制造和大量调用state.botframework.com。我还注意到,我们的生产环境对这些请求的响应为200,但是我们的新Web App Bot对所有这些请求的响应为405(不允许使用方法)。

当我们开始开发该机器人时(2018年5月),我们立即实施了Azure Table Storage。因此,我很惊讶地发现我们的机器人仍在调用state.botframework.com。

This blogpost by MS状态:

  

阅读选项将在2018年7月31日之前继续提供

我的假设是,MS仍允许在特定日期之前注册的漫游器向State API请求。

我尝试过的事情:

我已经按照Microsoft的指南Manage custom state data with Azure Table Storage for .NET进行操作。我也阅读了相关问题Migrated bot state provider but calls to state.botframework.com are still being made,但对我没有帮助。

我的代码:

Conversation.UpdateContainer(
builder =>
{
    builder.RegisterModule(new AzureModule(Assembly.GetExecutingAssembly()));

    var store = new 
    TableBotDataStore(ConfigurationManager.AppSettings["AzureWebJobsStorage"]); 

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

我的期望:

通过这种配置,我希望我们的机器人仅使用TableBotDataStore,并且不会对不赞成使用的State API进行任何调用。

0 个答案:

没有答案