摘要:
我们在C#Bot中实现了TableBotDataStore,但该机器人仍在以某种方式调用已弃用的State API。
上下文:
在Application Insights中,我可以看到我们的机器人正在制造和大量调用state.botframework.com。我还注意到,我们的生产环境对这些请求的响应为200,但是我们的新Web App Bot对所有这些请求的响应为405(不允许使用方法)。
当我们开始开发该机器人时(2018年5月),我们立即实施了Azure Table Storage。因此,我很惊讶地发现我们的机器人仍在调用state.botframework.com。
阅读选项将在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进行任何调用。