【发布时间】:2019-04-10 10:21:55
【问题描述】:
在我尝试运行它时,实际上发送脚本不起作用。特别是这一行:
await connectorClient.Conversations.SendConversationHistoryAsync(activity.Conversation.Id, transcript, cancellationToken: cancellationToken);
我得到以下异常:
ConversationHistory> 失败: Microsoft.BotBuilderSamples.ConversationHistoryBot[0] ConversationHistory> 捕获异常: System.Threading.Tasks.TaskCanceledException:操作是 取消。 ---> System.IO.IOException: 无法从 传输连接:I/O 操作已中止,因为 线程退出或应用程序请求。 ---> System.Net.Sockets.SocketException:I/O 操作已中止 由于线程退出或应用程序请求 ConversationHistory> --- 内部异常堆栈跟踪结束 --- ConversationHistory> 在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError 错误)对话历史>在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 令牌)对话历史>在 System.Net.Http.HttpConnection.FillAsync() ConversationHistory>
在 System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync(布尔 foldedHeadersAllowed) ConversationHistory> 在 System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage 请求,CancellationToken cancelToken) ConversationHistory>
--- 内部异常堆栈跟踪结束 --- ConversationHistory> at Microsoft.BotBuilderSamples.ConversationHistoryBot.OnTurnAsync(ITurnContext turnContext, CancellationToken cancelToken) 在 C:\Users\Oyen\source\repos\BotBuilder-Samples\samples\csharp_dotnetcore\22.conversation-history\ConversationHistoryBot.cs:line 99对话历史>在 Microsoft.Bot.Builder.TranscriptLoggerMiddleware.OnTurnAsync(ITurnContext turnContext, NextDelegate nextTurn, CancellationToken 取消令牌)在 D:\a\1\s\libraries\Microsoft.Bot.Builder\TranscriptLoggerMiddleware.cs:line 105对话历史>在 Microsoft.Bot.Builder.MiddlewareSet.ReceiveActivityWithStatusAsync(ITurnContext turnContext、BotCallbackHandler 回调、CancellationToken 取消令牌)在 D:\a\1\s\libraries\Microsoft.Bot.Builder\MiddlewareSet.cs:55 行 对话历史>在 Microsoft.Bot.Builder.BotAdapter.RunPipelineAsync(ITurnContext turnContext、BotCallbackHandler 回调、CancellationToken 取消令牌)在 D:\a\1\s\libraries\Microsoft.Bot.Builder\BotAdapter.cs:167 行
我可以确认脚本文件保存在我的 blob 存储中,并且我可以遍历从 blob 中检索到的活动。
(1) 要让 SendConversationHistoryAsync() 工作,我缺少什么?
(2) 实际成绩单在发送时是什么样的? (仅遍历我的活动并处理每种活动类型并制作我自己的对话历史消息是否值得?)
【问题讨论】:
-
您使用的是哪个版本的模拟器?我能够在模拟器 V3 上重现
TaskCancelled异常(包括包含脚本日志的 blob 存储文件夹),但机器人在 emulator v4 上按预期工作。 -
关于第 2 点,实际的成绩单应显示为确认 API 调用成功的方法中的活动对象数组。
-
@MarkB 我使用的是模拟器 V3。感谢模拟器 V4 提示。我将切换到预览版 V4 - 看起来我错过了。
标签: c# botframework