Azure 添加英雄卡会导致消息挂起Skype

Azure 添加英雄卡会导致消息挂起Skype,azure,botframework,azure-functions,Azure,Botframework,Azure Functions,我的机器人服务中有一个类,它以英雄卡的旋转木马返回任务。我发现,当在本地调试时,以及在azure门户上使用测试客户机时,它也可以工作。然而,使用Skype,我发现在对同一功能“获取所有任务”进行了几次调用后,机器人永远不会返回响应消息。最初几次,它会起作用。用户的请求消息会先说“发送”,然后说“发送”,但机器人永远不会响应 var tasksFound = false; var stringBuilder = new StringBuilder(); var mess

我的机器人服务中有一个类,它以英雄卡的旋转木马返回任务。我发现,当在本地调试时,以及在azure门户上使用测试客户机时,它也可以工作。然而,使用Skype,我发现在对同一功能“获取所有任务”进行了几次调用后,机器人永远不会返回响应消息。最初几次,它会起作用。用户的请求消息会先说“发送”,然后说“发送”,但机器人永远不会响应

    var tasksFound = false;

    var stringBuilder = new StringBuilder();

    var message = context.MakeMessage();
    message.Attachments = new List<Attachment>();
    message.AttachmentLayout = AttachmentLayoutTypes.Carousel;

    foreach (var contact in contacts)
    {
        if (contact.Tasks.Count > 0)
        {
            foreach (var task in contact.Tasks)
            {
                if (task.Completed == false)
                {
                    tasksFound = true;

                    var cardButtons = new List<CardAction>();

                    var plButtonComplete = new CardAction()
                    {
                        Value = $"buttonevent,task,complete,{contact.id},{task.Id}",
                        Type = "postBack",
                        Title = "Complete"
                    };

                    cardButtons.Add(plButtonComplete);

                    var plButtonDelete = new CardAction()
                    {
                        Value = $"buttonevent,task,delete,{contact.id},{task.Id}",
                        Type = "postBack",
                        Title = "Delete"
                    };

                    cardButtons.Add(plButtonDelete);

                    var plCard = new HeroCard()
                    {
                        Title = contact.FullName,
                        Subtitle = $"Due: {task.DueDate.ToString("MMM dd")}",
                        Text = $"{task.Description}",
                        Buttons = cardButtons
                    };

                    message.Attachments.Add(plCard.ToAttachment());
                }
            }
            stringBuilder.AppendLine("");
        }
    }
var tasksFound=false;
var stringBuilder=新的stringBuilder();
var message=context.MakeMessage();
message.Attachments=新列表();
message.AttachmentLayout=attachmentlayoututypes.Carousel;
foreach(触点中的var触点)
{
如果(contact.Tasks.Count>0)
{
foreach(contact.Tasks中的var任务)
{
如果(task.Completed==false)
{
tasksFound=true;
var cardButtons=新列表();
var plButtonComplete=new CardAction()
{
值=$“按钮事件,任务,完成,{contact.id},{task.id}”,
Type=“postBack”,
Title=“完成”
};
添加(plButtonComplete);
var plButtonDelete=新卡操作()
{
值=$“按钮事件,任务,删除,{contact.id},{task.id}”,
Type=“postBack”,
Title=“删除”
};
卡片按钮。添加(PLButton删除);
var plCard=新HeroCard()
{
Title=contact.FullName,
Subtitle=$“到期:{task.DueDate.ToString(“MMM dd”)}”,
Text=$“{task.Description}”,
按钮=卡片按钮
};
message.Attachments.Add(plCard.ToAttachment());
}
}
stringBuilder.AppendLine(“”);
}
}
我已经尝试删除所有的卡功能,一个简单的stringbuilder可以在Skype和测试客户端中很好地组装消息


我有什么遗漏吗?我确保使用DispatchDialog中的context.Wait调用来升级调用堆栈。也很确定我有我所有的等待,等等。

你用了多少张卡?如果超过10张,Skype将抛出异常。在这种情况下,转盘中只有一张或两张卡。然而,这带来了一个很好的测试用例,因为我们还没有用足够的时间来尝试它,导致skype出现异常。我无法重现您的问题。你能把你的项目放在回购协议中让我们看看吗?@JasonSowers我可以提供对回购协议的访问,它托管在VSO上,所以我想请提供一个可以访问该协议的帐户?你使用了多少张卡?如果超过10张,Skype将抛出异常。在这种情况下,转盘中只有一张或两张卡。然而,这带来了一个很好的测试用例,因为我们还没有用足够的时间来尝试它,导致skype出现异常。我无法重现您的问题。您是否能够将您的项目放入回购协议中,以便我们可以查看?@JasonSowers我可以提供对回购协议的访问,它托管在VSO上,因此我想请提供一个可以访问该协议的帐户?