我们拥有访问AWS DynamoDB中AppSettings的C#代码(使用AWS .NET SDK),它在我们的开发PC上运行良好。但是,当我们将代码放在EC2实例上时,我们会间歇性地得到错误;有时我们可以访问我们的DynamoDB表,有时我们无法访问。我们编写了一个小程序来删除所有其他代码,并使用AmazonDynamoDBClient调用ListTables方法。我们将精简代码放在我们的EC2实例上并从命令行运行它,就像我们的常规应用程序一样,它有时会起作用,有时它也不会。我们的精简代码是:
if((days < 0)||(minutes < 0)||(seconds < 0 )||(hours < 0)){
days = 0;
minutes = 0;
hours = 0;
days = 0;
}
正如您所看到的,它非常简单。这些是我们(有时)得到的错误:
class Program
{
static void Main(string[] args)
{
try
{
AmazonDynamoDBClient client = new AmazonDynamoDBClient(RegionEndpoint.USEast1);
ListTablesRequest request = new ListTablesRequest();
ListTablesResponse response = client.ListTables(request);
foreach (var tableName in response.TableNames)
{
Console.WriteLine("{0}", tableName);
}
Console.ReadKey();
}
catch (Exception e)
{
Exception e1 = e;
while (e1 != null)
{
Console.WriteLine(e1.GetType().ToString());
Console.WriteLine(e1.Message);
Console.WriteLine(e1.StackTrace);
e1 = e1.InnerException;
}
}
}
我们不确定为什么会这样。我们验证了我们在实例上的角色具有权限,尽管由于代码有时会起作用,我们真的不应该这样做。任何见解都是最受欢迎的。
答案 0 :(得分:0)
远程主机异常关闭是should be retried by the client的5XX瞬态服务失败的示例。如果你得到其中一个,只需重试。如果这些连接关闭持续很长时间,请联系AWS支持或在AWS论坛上寻求帮助。