Невозможно отправить вложение в веб-чате с помощью прямой линии, тот же код работает нормально в эмуляторе - PullRequest
0 голосов
/ 25 апреля 2019
var response = MessageFactory.Attachment(new Attachment
{
     Name = @"application.png",
     ContentType = "image/png",
     ContentUrl =  "base64sting"
});

await dc.Context.SendActivityAsync(response);

Над кодом, генерирующим приведенное ниже исключение в веб-чате, когда я пытаюсь отправить вложение пользователю, в эмуляторе оно работает нормально

в Microsoft.Bot.Connector.Conversations.ReplyToActivityWithHttpMessagesAsync (StringchatId, String ActivityId, Activity Activity, словарь`2 customHeaders, CancellationToken cancellationToken) в D: \ a \ 1 \ s \ library \ Microsoft.Bot.Connector \ Conversations.cs: строка 1121

в Microsoft.Bot.Connector.ConversationsExtensions.ReplyToActivityAsync (операции IConversations, String dialogId, String ActivityId, действие Activity, CancellationToken cancellationToken) в D: \ a \ 1 \ s \ library \ Microsoft.Bot.Connector \ ConversationsExtensions.cs: строка 241

в Microsoft.Bot.Builder.BotFrameworkAdapter.SendActivitiesAsync (ITurnContext turnContext, Activity [] действия, CancellationToken cancellationToken) в D: \ a \ 1 \ s \ library \ Microsoft.Bot.Builder \ BotFrameworkAdapter.cs: строка 316

на Microsoft.Bot.Builder.TurnContext. <> c__DisplayClass22_0.d.MoveNext () в D: \ a \ 1 \ s \ library \ Microsoft.Bot.Builder \ TurnContext.cs: строка 267

Я даже пробовал это

using (var connector = new ConnectorClient(new Uri(serviceUrl)))
{
    var attachments = new Attachments(connector);
    var response = await attachments.Client.Conversations.UploadAttachmentAsync(
        conversationId,
        new AttachmentData
        {
            Name = @"Resources\architecture-resize.png",
            OriginalBase64 = File.ReadAllBytes(imagePath),
            Type = "image/png",
        }
    );

    var attachmentUri = attachments.GetAttachmentUri(response.Id);

    return new Attachment
    {
        Name = @"Resources\architecture-resize.png",
        ContentType = "image/png",
        ContentUrl = attachmentUri,
    };
}

это тоже не помогает, есть ли способ обойтись, чтобы отправить вложение пользователю с помощью веб-чата, не имея URL размещенного контента?

...