首页 > 解决方案 > 部署的 azure 函数从 GraphApi Rest 调用收到错误请求,但操作成功

问题描述

我在 Visual Studio 中开发了一个 azure 函数,它访问一些图形 api 端点并将一些信息写入 azure 存储。当我在我的电脑上测试该功能时,一切正常。

编辑 1:当我开始尝试记录信息时,我能够看到我的函数只是在运行第一个调用,甚至没有完成它。我在每次通话之前和之后都使用过。

log.Info() 

这是 GraphAPI 调用,我知道它处于预览状态,但这应该不是问题,因为此代码在我的 Visual Studio 的 PC 上运行良好。

public static async Task<ChatMessage> CreateNewMessageThread(Employee employee)
        {
            var chatMessage = ChatThreadMainMessage(employee);

            var result = await GraphServiceClient
                .Teams[ApplicationConfigurationFields.TeamsId]
                .Channels[ApplicationConfigurationFields.ChannelId]
                .Messages
                .Request()
                .AddAsync(chatMessage);

            return result;
        }

编辑 2:我从引发异常的调用中得到一个 BadRequest。尽管我收到了错误的请求,但仍然会创建消息...即使我发现了问题,我也想了解为什么会发生这种情况。

这是堆栈跟踪,不知道它是否会帮助某人。

Status Code: BadRequest
Microsoft.Graph.ServiceException: Code: BadRequest
Message: Bad Request
Inner error:
    AdditionalData:
    request-id: 220c1508-5bbd-xxxxx-xxxxx
    date: 2020-04-27T16:02:01
ClientRequestId: 220c1508-5bbd-xxxxxx-xxxxx

   at Microsoft.Graph.HttpProvider.<SendAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.BaseRequest.<SendRequestAsync>d__35.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.BaseRequest.<SendAsync>d__31`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MsTeamsNotifications.MsTeamsNotifications.<CreateNewMessageThread>d__19.MoveNext()

谢谢!

标签: c#azureazure-functionsmicrosoft-graph-apimicrosoft-graph-teams

解决方案


推荐阅读