Окружающая среда
- ASP.NET WebAPI вызывает внешние клиентские службы.
Входящая трассировка XRay, примененная в Global.asax через
AWSXRayASPNET.RegisterXRay(this, "CustomerAPI");
Экземпляр HttpClient, скрытый как закрытый член в служебном классе, совместно используемый в отдельном проекте с несколькими WebAPI
HttpClient, имеющий делегирующий обработчик для Xray, включается следующим образом: -
(Ссылка: .NET HttpClient для исходящего XRay )
bool isXrayEnabled = false;
bool.TryParse(Config["XRayEnable"], out isXrayEnabled);
if (isXrayEnabled)
{
Logger.Info("Enabling XRay tracing with Http calls");
httpClient = new HttpClient(new HttpClientXRayTracingHandler(new HttpClientHandler()));
}
else
{
httpClient = new HttpClient();
Logger.Info("Disabling XRay tracing with Http calls");
}
Выпуск
Хотя все API показывают входящую трассировку XRay, исходящая трассировка вообще не отображается. 
Вместо этого в журналах XRay отображается следующая ошибка
Exception type: EntityNotAvailableException
Exception message: Entity doesn't exist in HTTPContext
at Amazon.XRay.Recorder.Core.Internal.Context.HybridContextContainer.InjectEntityInTraceContext()
at Amazon.XRay.Recorder.Core.AWSXRayRecorderImpl.AddHttpInformation(String key, Object value)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Amazon.XRay.Recorder.Core.AWSXRayRecorderImpl.AddHttpInformation(String key, Object value)
at Amazon.XRay.Recorder.Handlers.AspNet.AWSXRayASPNET.ProcessHTTPResponse(Object sender, EventArgs e)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)