DynamoDB会话状态提供程序向应用程序抛出错误

时间:2014-12-05 15:10:58

标签: c# asp.net amazon-web-services session-state amazon-dynamodb

我使用AmazonWebServices中的DynamoDB运行ASP.NET Web服务,以进行会话状态处理。

但是今天我遇到了大量异常,因为错误导致了应用程序级别的冒泡。是否有其他人遇到这些错误。我在另一周也有这种行为,它持续了大约1-2小时然后就消失了。

我完全按照这里描述的那样使用它: http://docs.aws.amazon.com/AWSSdkDocsNET/latest/DeveloperGuide/net-dg-dynamodb-session.html

我使用AWS Sessionstate提供程序的2.3.0.1版本(来自AWS SDK)

这是堆栈跟踪:

System.Net.WebException: The remote server returned an error: (400) Bad Request.
at System.Net.HttpWebRequest.GetResponse()
at Amazon.Runtime.Internal.HttpRequest.GetResponse()

有什么想法吗?

编辑: 根据要求提供Web.config的合适部件

<appSettings>      
  <add key="AWSAccessKey" value="XXXXXXXXXXXX"/>
  <add key="AWSSecretKey" value="XXXXXXXXXXXX"/>        
</appSettings>

<compilation>
  <assemblies>
    <add assembly="AWS.SessionProvider, Version=2.3.0.1, Culture=neutral, PublicKeyToken=9f476d3089b52be3" />
    <add assembly="AWSSDK, Version=2.3.0.1, Culture=neutral, PublicKeyToken=9f476d3089b52be3" />
  </assemblies>
</compilation>

<system.web>
  <sessionState timeout="20" mode="Custom" customProvider="DynamoDBSessionStoreProvider">
    <providers>
      <add name="DynamoDBSessionStoreProvider" type="Amazon.SessionProvider.DynamoDBSessionStateStore" Region="eu-west-1" />
    </providers>
  </sessionState>  
</system.web>

EDIT2: 在错误开始的同时,我确实看到了很多受限制的请求,即使你在配置的吞吐量上似乎也没有接近。然而,在此期间,我发现ElasticLoadBalancer的监控流量略有下降(预计在营业日结束时)。所以它并不觉得我获得了更多的点击,因此得到了限制请求。

动力学监测的Screendump http://1drv.ms/1vU7BzO

1 个答案:

答案 0 :(得分:0)

我的猜测将是以下之一,因为它看起来大部分时间都有效,偶尔会有问题,然后在没有你做任何事情的情况下恢复:

  • 您超出了设置时配置的费率请求 数据库 - 将抛出400错误(这是我的第一个猜测)
  • 确保IIS上的时间与AWS同步;这可能会导致签名问题
  • 确保您没有尝试超过单个项目的64KB的最大大小。
相关问题