大家好我使用TableLogger.cs实现将对话历史记录到azure表存储。首先在我的机器人模拟器上启动它会顺利运行但是在你停止并重新运行之后,它将遇到storageexception 409冲突错误。
我很困惑,如果表已经存在,则会发生409冲突错误,如果无法处理此类情况,那么createifnotexists方法的目的是什么?我怎么解决这个问题?感谢
我在我的global.asax上使用此代码来保存用户和机器人的botdata和对话历史记录,它使用tablelogger.cs实现。
Global Asax:
var tableName = ConfigurationManager.AppSettings["TableName"].ToString();
var account = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
//Azure StateData
Conversation.UpdateContainer(
builder =>
{
//azure botdata
builder.RegisterModule(new AzureModule(Assembly.GetExecutingAssembly()));
var store = new TableBotDataStore(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
builder.Register(c => store)
.Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)
.AsSelf()
.SingleInstance();
//azure conversation history
account.CreateCloudTableClient().GetTableReference(tableName).DeleteIfExists();
builder.RegisterModule(new TableLoggerModule(account, tableName));
});