gpt4 book ai didi

c# - Aws XRay "Entity doesn' t 存在于 .net 控制台应用程序的 CallContext 中

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:39 32 4
gpt4 key购买 nike

我有这样的 SQSClient 设置:

var client = new AmazonSQSClient();
new AWSSdkTracingHandler(AWSXRayRecorder.Instance).AddEventHandler(client);
return client;

现在当我调用客户时

var receiveResult = _amazonSqs.ReceiveMessage(_longPollRequest);

我得到以下异常

Amazon.XRay.Recorder.Core.Exceptions.EntityNotAvailableException was 
unhandled by user code
HResult=-2146233088
Message=Entity doesn't exist in CallContext
Source=AWSXRayRecorder.Core
StackTrace:
at Amazon.XRay.Recorder.Core.Internal.Utils.TraceContext.GetEntity() in c:\Jenkins\jobs\net-release\workspace\sdk\src\Core\Internal\Utils\TraceContext.cs:line 47
at Amazon.XRay.Recorder.Handlers.AwsSdk.AWSSdkTracingHandler.ExceptionEventHandler(Object sender, ExceptionEventArgs e) in c:\Jenkins\jobs\net-release\workspace\sdk\src\Handlers\AwsSdk\AWSSdkTracingHandler.cs:line 324
at Amazon.Runtime.AmazonServiceClient.ProcessExceptionHandlers(IExecutionContext executionContext, Exception exception)
at Amazon.Runtime.Internal.ErrorCallbackHandler.HandleException(IExecutionContext executionContext, Exception exception)
at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.MetricsHandler.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.RuntimePipeline.InvokeSync(IExecutionContext executionContext)
at Amazon.Runtime.AmazonServiceClient.Invoke[TRequest,TResponse](TRequest request, IMarshaller`2 marshaller, ResponseUnmarshaller unmarshaller)
at Amazon.SQS.AmazonSQSClient.ReceiveMessage(ReceiveMessageRequest request)
at BasePriceCalculator.Library.Services.AwsSqsCalculationMessageListener.Listen() in C:\working\base-price-calculator\BasePriceCalculator.Library\Services\AwsSqsCalculationMessageListener.cs:line 74
at BasePriceCalculator.BasePriceCalculatorService.<Start>b__3_0() in C:\working\base-price-calculator\BasePriceCalculator\BasePriceCalculatorService.cs:line 26
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()

我尝试添加类似 AWSXRayRecorder.Instance.BeginSegment(); 的内容,但不知何故这需要一个我似乎无法满足的 traceId

AWSXRayRecorder.Instance.BeginSegment("ReceiveMessage", Guid.NewGuid().ToString());
var receiveResult = _amazonSqs.ReceiveMessage(_longPollRequest);
AWSXRayRecorder.Instance.EndSegment();

异常(exception):

System.ArgumentException was unhandled by user code
HResult=-2147024809
Message=Trace id is invalid.
Parameter name: value
ParamName=value
Source=AWSXRayRecorder.Core
StackTrace:
at Amazon.XRay.Recorder.Core.Internal.Entities.Entity.set_TraceId(String value) in c:\Jenkins\jobs\net-release\workspace\sdk\src\Core\Internal\Entities\Entity.cs:line 78
at Amazon.XRay.Recorder.Core.Internal.Entities.Segment..ctor(String name, String traceId, String parentId) in c:\Jenkins\jobs\net-release\workspace\sdk\src\Core\Internal\Entities\Segment.cs:line 46
at Amazon.XRay.Recorder.Core.AWSXRayRecorder.BeginSegment(String name, String traceId, String parentId, SampleDecision sampleDecision) in c:\Jenkins\jobs\net-release\workspace\sdk\src\Core\AWSXRayRecorder.cs:line 164
at BasePriceCalculator.Library.Services.AwsSqsCalculationMessageListener.<Listen>b__10_1() in C:\working\base-price-calculator\BasePriceCalculator.Library\Services\AwsSqsCalculationMessageListener.cs:line 65
at StatsdClient.DogStatsdService.Time[T](Func`1 func, String statName, Double sampleRate, String[] tags)
at StatsdClient.DogStatsd.Time[T](Func`1 func, String statName, Double sampleRate, String[] tags)
at DataDogUtils.DataDogMetricPublisher.Time[T](Func`1 func, String statName, Double sampleRate, String[] tags)
at BasePriceCalculator.Library.Services.AwsSqsCalculationMessageListener.<Listen>b__10_0() in C:\working\base-price-calculator\BasePriceCalculator.Library\Services\AwsSqsCalculationMessageListener.cs:line 63
at Polly.Policy`1.<>c__DisplayClass67_0.<ExecuteAndCapture>b__0(Context ctx, CancellationToken ct) in C:\projects\polly\src\Polly.Shared\Policy.TResult.cs:line 194
at Polly.Retry.RetryEngine.Implementation[TResult](Func`3 action, Context context, CancellationToken cancellationToken, IEnumerable`1 shouldRetryExceptionPredicates, IEnumerable`1 shouldRetryResultPredicates, Func`1 policyStateFactory) in C:\projects\polly\src\Polly.Shared\Retry\RetryEngine.cs:line 26

我一定是做错了什么,但我没有看到。

最佳答案

您可以使用 TraceId.NewId(); 创建新的跟踪 ID。此类在 Amazon.XRay.Recorder.Core.Internal.Entities 命名空间中可用。

正如 Ruslan 提到的,我们(AWS X-Ray 团队)在 AWS X-Ray 官方论坛上非常活跃。不幸的是,您的链接帖子似乎已发布在 AWS .NET 语言特定论坛中。如果以后的帖子发给X-Ray specific forum,我们更有可能快速回复它们。 .

谢谢,

詹姆斯 B.

关于c# - Aws XRay "Entity doesn' t 存在于 .net 控制台应用程序的 CallContext 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45503660/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com