我正在使用适用于.net的aws sdk,在emr集群中创建pig事件并在管道中调用,
try
{
var profileName = ConfigurationManager.AppSettings["AWS_PROFILE_NAME"];
var accessKey = ConfigurationManager.AppSettings["AWS_ACCESS_KEY"];
var secretKey = ConfigurationManager.AppSettings["AWS_SECRET_KEY"];
Amazon.Util.ProfileManager.RegisterProfile(profileName, accessKey, secretKey);
using (_dataPipelineClient = new AmazonDataPipelineClient(accessKey, secretKey, Amazon.RegionEndpoint.USEast1))
{
//proccesing code ...
}
}
catch (Exception e)
{
Logger.Error("ReportScheduler -> Error ocurred.", e);
throw new Exception("ReportScheduler -> Error ocurred.", e);
}
在我的本地服务器中,一切都运行完美,没有任何问题。但在托管中它抛出此异常:
AmazonClient异常
CryptProtectData 失败。
Amazon.Runtime.Internal.Settings.UserCrypto in Encrypt at line 94:0
System.String Encrypt(System.String)
Amazon.Runtime.Internal.Settings.SettingsCollection+ObjectSettings in WriteToJson at line 94:0
Void WriteToJson(ThirdParty.Json.LitJson.JsonWriter)
Amazon.Runtime.Internal.Settings.SettingsCollection in Persist at line 62:0
Void Persist(System.IO.StreamWriter)
Amazon.Runtime.Internal.Settings.PersistenceManager in saveSettingsType at line 93:0
Void saveSettingsType(System.String, Amazon.Runtime.Internal.Settings.SettingsCollection)
Amazon.Util.ProfileManager in RegisterProfile at line 115:0
Void RegisterProfile(System.String, System.String, System.String)
有人可以告诉我问题出在哪里吗?
谢谢。
最佳答案
我遇到了同样的问题,对我有用的是使用基本的 AWS 凭证,而不是使用商店凭证。
public static AmazonS3Client GetAwsS3Client(string accessKey, string secretKey)
{
var credentials = new BasicAWSCredentials(accessKey, secretKey);
return new AmazonS3Client(credentials, Amazon.RegionEndpoint.USEast1);
}
关于.net - AWS 开发工具包 CryptProtectData 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32461275/