由于LUIS端点已在几周后弃用,因此我正在将适用于该机器人的Bot Builder SDK从3.5.0升级到3.5.5,并且最新的SDK版本似乎可以指定“ LuisApiVersion”。

升级期间,在修改行为以将LastWriteWins策略用于CachingBotDataStoreConsistencyPolicy时,出现以下错误:

抛出异常:


  autofac.dll中的'Autofac.Core.Registration.ComponentNotRegisteredException'
  
  附加信息:所请求的服务“ Microsoft.Bot.Builder.Dialogs.Internals.ConnectorStore”尚未注册。为避免此异常,请注册一个组件以提供服务,或者使用IsRegistered()检查服务注册,或者使用ResolveOptional()方法解决可选的依赖项。


        builder.Register(c => new CachingBotDataStore(c.Resolve<ConnectorStore>(),
            CachingBotDataStoreConsistencyPolicy.LastWriteWins)
            .As<IBotDataStore<BotData>>()
            .AsSelf()
            .InstancePerLifetimeScope();


这段代码适用于3.5.0,但是我不确定处理3.5.5时遇到的Autofac错误的最佳方法是什么。关于这个有什么建议或想法吗?

最佳答案

您可以看到here,ConnectorStore的注册已更改。

要解决该问题,您应该将代码中的c.Resolve<ConnectorStore>()更改为c.ResolveKeyed<IBotDataStore<BotData>>(typeof(ConnectorStore))

09-16 07:44