1
我試圖將發送到bot的附件從一個用戶路由到另一個用戶。它正常工作,而我試圖從模擬器發送一些東西到模擬器/電報/ Skype,但是當我試圖從Skype /電報發送它時根本不工作(skype什麼也沒說,電報說:「POST到mybot失敗:POST機器人端點失敗,HTTP狀態500「)。我應該在哪裏尋找問題?路由附件
這裏是我的代碼:
if (mes.Attachments != null && mes.Attachments.Any())
{
var list = new List<Attachment>();
foreach (var attachment in mes.Attachments)
{
using (HttpClient httpClient = new HttpClient())
{
// Skype attachment URLs are secured by a JwtToken, so we need to pass the token from our bot.
if (mes.ChannelId.Equals("skype", StringComparison.InvariantCultureIgnoreCase) &&
new Uri(attachment.ContentUrl).Host.EndsWith("skype.com"))
{
var mstoken = await new MicrosoftAppCredentials().GetTokenAsync();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer",
mstoken);
}
var responseMessage = await httpClient.GetAsync(attachment.ContentUrl);
var ms = await ConvertContentToByteArray(responseMessage);
var sendAttachment = new Attachment()
{
ContentType = attachment.ContentType,
Name = attachment.Name,
ContentUrl = String.Format("data:image/png;base64,{1}", attachment.ContentType,
Convert.ToBase64String(ms))
};
list.Add(sendAttachment);
}
}
message.Attachments = list;
message.AttachmentLayout = mes.AttachmentLayout;
}
await connector.Conversations.SendToConversationAsync((Activity)message);
「MES」 是傳入消息,「消息 - outcoming
預先感謝您爲您的回答
更新1:我!設法解決我發送/接收文件的問題(請參閱下面的答案)。不幸的是出現了文件大小限制的新問題(請參閱Useful post)
個這是有用的,我有些鏈接:Send Attachment Sample,Receive Attachment Sample,Useful post,Some other receiving example
錯誤消息「發送到機器人端點失敗,HTTP狀態500」意味着您的機器人正在投擲500.嘗試附加調試器並查看是否可以捕獲它? – Lars
感謝您的回答!我沒有意識到可以直接在雲中調試應用程序(而不是在仿真器中)。 這裏是鏈接如何做到這一點[遠程調試Web應用程序](https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-dotnet-troubleshoot-visual-studio)。我也必須從[這個答案](http://stackoverflow.com/questions/17659473/visual-studio-remote-debugger-invalid-access-to-memory-location-feature)應用補丁,使其工作。 – Sovan