DynamoDB 会话状态提供程序向应用程序引发错误

本文关键字:应用程序 错误 程序 会话状态 DynamoDB | 更新日期: 2023-09-27 18:33:13

我在 AmazonWebServices 中使用 DynamoDB 运行一个 ASP.NET Web 服务,用于会话状态处理。

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

我完全按照此处所述使用它:http://docs.aws.amazon.com/AWSSdkDocsNET/latest/DeveloperGuide/net-dg-dynamodb-session.html

我使用的是 AWS 会话状态提供程序版本 2.3.0.1(来自 AWS 开发工具包(

这是堆栈跟踪:

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>

编辑2:我确实看到很多受限制的请求在错误开始的同时出现,即使你似乎甚至没有接近预配的吞吐量。但是,在此期间,我看到 ElasticLoadBalancer 监控中的流量略有下降(正如预期的那样,接近工作日结束(。所以感觉我没有得到更多的点击,因此收到限制的请求。

动态监控的屏幕转储http://1drv.ms/1vU7BzO

DynamoDB 会话状态提供程序向应用程序引发错误

我的猜测是以下之一,因为它似乎大部分时间都有效,偶尔会出现问题,然后在您不执行任何操作的情况下恢复:

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