PATCH 操作中的 Azure 后端 return 500

Azure backend return 500 in PATCH operation

仅当我尝试将对象从 xamarin.Forms 离线数据库更新到 Azure 时,我才拼命尝试调试错误 500。我正在使用 Azure 移动客户端。 我在 azure 中将所有日志记录设置为 ON,然后我下载了日志。我可以看到一般错误,但没有任何用处。

<failedRequest url="https://MASKED:80/tables/Appel/9A3342A2-0598-4126-B0F6-2999B524B4AE"
           siteId="Masked"
           appPoolId="Masked"
           processId="6096"
           verb="PATCH"
           remoteUserName=""
           userName=""
           tokenUserName="IIS APPPOOL\Masked"
           authenticationType="anonymous"
           activityId="{80000063-0000-EA00-B63F-84710C7967BB}"
           failureReason="STATUS_CODE"
           statusCode="500"
           triggerStatusCode="500"
           timeTaken="625"
           xmlns:freb="http://schemas.microsoft.com/win/2006/06/iis/freb"
           >

失败的 table 是我使用导航字段的一些虚拟运行时计算字段扩展的唯一一个。但是我添加了 [JsonIgnore] 以停止 AzureService 在本地数据库中创建字段(有效)或通过网络将其发送到服务器。但是我总是得到 500 错误,在调试 c# Azure 后端时也不例外。 如何在我的后端找到堆栈跟踪或 "deep" 出现此 500 错误的原因?

对于 C# 移动应用程序后端,您可以在 Startup.MobileApp.cs 文件的 ConfigureMobileApp 方法中添加以下代码,以将错误详细信息和 return 添加到您的客户端。

config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

您可以在移动应用程序中捕获异常,或者在调用 PATCH 操作时利用 fiddler 捕获网络跟踪以检索详细的错误消息。

此外,您正在查看 Failed Request Traces 日志,您需要检查 Application logs。您可以关注的详细信息 Enable diagnostics logging for web apps in Azure App Service.