首页 > 解决方案 > 错误:输入的授权令牌无法为请求提供服务。使用本地模拟器和 Microsoft Bot Framework V4 Bot

问题描述

我正在尝试使用我的本地 CosmosDB 模拟器作为我的 Microsoft Bot Framework V4 机器人的存储引擎,以下是 CosmosDBStorage 生成代码,

var cosmosDbStorage = new CosmosDbStorage(new CosmosDbStorageOptions
            {
                AuthKey = “default master auth key”,
                CollectionId = “bot-state”,
                CosmosDBEndpoint = “https://localhost:8081”,
                DatabaseId = “production-bot”,
            });

我们收到以下错误,以下是异常的堆栈跟踪,

 at ConnectMe.BotV4.Middlewares.LastActivityMiddleware.<OnTurnAsync>d__3.MoveNext() in C:\Users\vebhupat\source\repos\EUS-Sup-OSEE-CMe-ConnectMeCore\ConnectMe\ConnectMe.BotV4\Middlewares\LastActivityMiddleware.cs:line 49
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Bot.Builder.BotFrameworkAdapter.TenantIdWorkaroundForTeamsMiddleware.<OnTurnAsync>d__0.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Bot.Builder.MiddlewareSet.<ReceiveActivityWithStatusAsync>d__3.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Bot.Builder.BotAdapter.<RunPipelineAsync>d__14.MoveNext()

输入授权令牌无法为请求提供服务。请检查预期的有效负载是否按照协议构建,并检查正在使用的密钥。服务器使用以下有效负载进行签名:'get

2019 年 12 月 22 日,星期日,格林威治标准时间 03:27:48' ActivityId:ec67fec0-0927-4391-b331-00d75973477a,Microsoft.Azure.Documents.Common/2.7.0,Windows/10.0.18363 documentdb-netcore-sdk/2.9.2

我的模拟器在地址处工作正常,https://localhost:8081/_explorer/index.html

我正在使用来自https://localhost:8081/_explorer/quickstart/DocumentDB-Quickstart-DotNet.zip的示例应用程序,我能够在 ToDoList 示例应用程序上运行执行 CRUD 操作的流程,

client = new DocumentClient(new Uri(ConfigurationManager.AppSettings["endpoint"]), ConfigurationManager.AppSettings["authKey"]);

根据一些 GitHub 帖子,这可能是由于使用模拟器的 localhost 端点进行 SSL 证书验证而发生的,可以使用 ConnectionPolicy 禁用它,但 ConnectionPolicy 类中没有这样的属性。

谁能帮我们解决这个问题?

标签: botframeworkazure-cosmosdb

解决方案


推荐阅读