Botframework 与您的机器人程序的机器人程序框架测试连接失败,状态代码为“禁止”

Botframework 与您的机器人程序的机器人程序框架测试连接失败,状态代码为“禁止”,botframework,botconnector,Botframework,Botconnector,我的机器人在Slack、Skype和emulator中接收和发送消息 但是,当我单击bot门户()中的蓝色测试按钮时,会显示错误消息“授权Microsoft应用程序ID my_ID_is_replacedher failed with status code problemed” 完整错误如下所示 使用endpoint和Conversations.SendToConversation()方法向Slack发送计划消息时,也会出现相同的错误。这通常是有效的,而测试按钮通常是成功的 为什么我会收到这个

我的机器人在Slack、Skype和emulator中接收和发送消息

但是,当我单击bot门户()中的蓝色测试按钮时,会显示错误消息“授权Microsoft应用程序ID my_ID_is_replacedher failed with status code problemed”

完整错误如下所示

使用endpoint和Conversations.SendToConversation()方法向Slack发送计划消息时,也会出现相同的错误。这通常是有效的,而测试按钮通常是成功的

为什么我会收到这个信息?有没有破坏它的NuGet pkg更新? 我浏览了故障排除指南,但其他一切似乎都正常

多谢各位

InternalServerError{“message”:“发生了错误。”, “例外消息”:“Microsoft应用程序ID的授权” 我的_id _是_replacedher失败,状态码为“禁止”, “异常类型”:“System.UnauthorizedAccessException”,“stackTrace”: 在 Microsoft.Bot.Connector.JWTTokenRefresh.d\u 2.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.ValidateEnd(任务任务)\r\n 在 Microsoft.Bot.Connector.Conversations.d\u 8.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 Microsoft.Bot.Connector.ConversationsExtensions.d\u 19.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter1.GetResult()\r\n位于 Grasp.MessagesController.d\u 0.MoveNext()位于 C:\Code\Relegraph\u Git\GraspThree\Grasp\Controllers\messages controller.cs:line 55\r\n---来自上一个异常位置的堆栈结束跟踪 被抛出---\r\n System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 System.Threading.Tasks.TaskHelperExtensions.d\u 3`1.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 System.Web.Http.Controller.ApiControllerActionInvoker.d\u 0.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 System.Web.Http.Filters.ActionFilterAttribute.d\u 5.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n位于System.Web.Http.Filters.ActionFilterAttribute.d\u 5.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 System.Web.Http.Filters.ActionFilterAttribute.d\u 0.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 System.Web.Http.Controllers.ActionFilterResult.d\u 2.MoveNext()\r\n--- 来自引发异常的上一个位置的堆栈结束跟踪 ---\r\n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)\r\n位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)\r\n位于 System.Web.Http.Dispatcher.HttpControllerDispatcher.d_u1.MoveNext() }


我找出了错误的原因。显然,bot门户中的测试按钮会向bot发送一条“Ping”消息。在我的MessagesController代码中,我试图用如下方式回复每条消息:

但是,当我对Ping类型的活动(Activity.type=ActivityTypes.Ping)执行此操作时,会出现上述错误。当我忽略Ping消息时,Test按钮就起作用了

我仍然有一个问题,当我收到同样的错误时,发送消息到松弛的时间表(没有传入的消息回复)。我使用Slack的WebAPI解决了这个问题:

{0}&channel={1}&text={2}&as_user={3}

试用

MicrosoftAppCredentials.TrustServiceUrl(notify.ServiceUrl, DateTime.MaxValue);
以前

connector.Conversations.SendToConversationAsync(...)

我看到有这样的东西:“我的id在这里”。您是否尝试用应用程序的真实ID更改占位符?是的,我的配置文件和错误消息中有一个真实且有效的Microsoft应用程序ID。我刚刚用“我的id是”文本替换了这里。
connector.Conversations.SendToConversationAsync(...)