如何解决为什么 AWS XRay 在 AspNetCore 中需要“UseExceptionHandler”和“UseStaticFiles”?
我在 Api Gateway 下的其中一个 Lambda API 中关注 Amazon's documentation to enable XRay,我注意到它告诉您向配置添加 3 个中间件:
UseExceptionHandler
UseXRay
UseStaticFiles
第一个和第三个中间件是原生的 AspNet 集成,而第二个是实际的 Amazon XRay 实现。该文档从未说明为什么需要其他 2 个。相反,它是关于订购的:
总是在 UseExceptionHandler 之后调用 UseXRay 来记录异常。如果您使用其他中间件,请在调用 UseXRay 后启用。
我不清楚异常处理程序是否必要,或者他们只是表示“如果您碰巧拥有它,请在其后添加 XRay”。
文档没有提及 UseStaticFiles
。
我想知道为什么亚马逊要我在继续更改之前添加这些其他中间件。如果确实需要添加它们,则必须有文件说明的原因。
特别是,这给我带来了 UseExceptionHandler
、which doesn't appear to be working correctly with an OData-enabled API 的一些问题,这是我目前的情况。
解决方法
在使用 X-Ray 中间件时,没有必要使用异常或静态文件处理程序。但是如果您的应用程序中已经有一个异常处理程序并且您想要记录内部异常堆栈,请确保调用:
-
UseXRay
在 .NET Core 2.0 中的UseExceptionHandler
之后。 -
UseXRay
在 .NET Core 2.1 及更高版本中的 http 管道的开头。
见:https://github.com/aws/aws-xray-sdk-dotnet/tree/master#aspnet-core-framework-net-core--nuget
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。