.NET 8 Web API调用Kinesis PutRecordsAsync触发ArgumentNullException
System.Private.CoreLib Value cannot be null. (Parameter 'path1')
System.Collections.ListDictionaryInternal
at System.ArgumentNullException.Throw(String paramName)
at System.IO.Path.Combine(String path1, String path2)
at Amazon.Internal.RegionEndpointProviderV3.GetEndpointJsonSourceStream()
at Amazon.Internal.RegionEndpointProviderV3..ctor()
at Amazon.RegionEndpoint.get_RegionEndpointProvider()
at Amazon.RegionEndpoint.get_InternedRegionEndpoint()
at Amazon.RegionEndpoint.GetEndpointForService(String serviceName, GetEndpointForServiceOptions options)
at Amazon.Runtime.Internal.Auth.AWS4Signer.DetermineSigningRegion(IClientConfig clientConfig, String serviceName, RegionEndpoint alternateEndpoint, IRequest request)
at Amazon.Runtime.Internal.Auth.AWS4Signer.SignRequest(IRequest request, IClientConfig clientConfig, RequestMetrics metrics, String awsAccessKeyId, String awsSecretAccessKey)
at Amazon.Runtime.Internal.Auth.AWS4Signer.Sign(IRequest request, IClientConfig clientConfig, RequestMetrics metrics, String awsAccessKeyId, String awsSecretAccessKey)
at Amazon.Runtime.Internal.Auth.AWS4Signer.Sign(IRequest request, IClientConfig clientConfig, RequestMetrics metrics, ImmutableCredentials credentials)
at Amazon.Runtime.Internal.Auth.AbstractAWSSigner.SignAsync(IRequest request, IClientConfig clientConfig, RequestMetrics metrics, ImmutableCredentials credentials, CancellationToken token)
at Amazon.Runtime.Internal.Signer.SignRequestAsync(IRequestContext requestContext)
at Amazon.Runtime.Internal.Signer.PreInvokeAsync(IExecutionContext executionContext)
at Amazon.Runtime.Internal.Signer.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.EndpointDiscoveryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.EndpointDiscoveryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CredentialsRetriever.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.MetricsHandler.InvokeAsync[T](IExecutionContext executionContext)
at .SendeDataToKinesis(String streamName, Int32 bufferSize)
代码片段
var putRecordsResponse = await _kinesisClient.PutRecordsAsync(putRecordsRequest);
已完成的检查
- putRecordsRequest不为空且包含有效值
- _kinesisClient已通过凭据和配置正确初始化
相同代码在.NET 7环境下无变更可正常运行。根据NuGet页面信息,AWSSDK.Kinesis(3.7.300.7)标注支持.NET 8.0,但升级后出现上述错误,确认该AWS SDK是否真的兼容.NET 8.0?
内容的提问来源于stack exchange,提问作者neox2811

