使用AWS Dynamodb提供程序删除过期的ASP.net会话状态数据

本文关键字:ASP net 会话状态 数据 过期 删除 Dynamodb AWS 程序 使用 | 更新日期: 2023-09-27 17:49:27

我已经创建了一个新的ASP。. NET MVC 5项目。我已经通过Nuget安装了。net和Session Provider的AWS SDK,并在Amazon上阅读了这篇文章:article

我在Web中有这个配置。配置

 <sessionState
  mode="Custom"
  customProvider="DynamoDBSessionStoreProvider">
  <providers>
    <add name="DynamoDBSessionStoreProvider"
      type="Amazon.SessionProvider.DynamoDBSessionStateStore, AWS.SessionProvider"
      AWSProfileName="default"
      Table="ASP.NET_SessionState"
      Region="eu-west-1"
      />
  </providers>
</sessionState>

我正在寻找删除过期会话存储数据的一些资源类似于

DeleteExpiredSessions.sql和ExpireUnusedSessions.sql

管理AWS DynamoDb中的过期数据

使用AWS Dynamodb提供程序删除过期的ASP.net会话状态数据

AWS SDK提供了一个名为DeleteExpiredSessions的方法描述为:

清理IIS失败的过期会话的实用程序方法删除。该方法对ASP执行扫描。NET_SessionState表有一个条件,即到期日是在过去和调用删除所有返回的键。扫描的性能可能会很昂贵,所以要像每晚或每周清理一样谨慎使用此方法。

http://docs.aws.amazon.com/sdkfornet1/latest/apidocs/html/T_Amazon_SessionProvider_DynamoDBSessionStateStore.htm

我没有使用过它,但听起来它是由你来调度一个作业,调用这个方法,而不是在SQL作业调度器中运行SQL语句在MS SQL世界。所以写一个c#程序来调用它并在Windows调度程序中调度它?或者使用IIS事件之一从您的web应用程序异步调用它?(异步的,否则你可能最终阻塞Application_Start很长一段时间,如果你正在使用该事件,例如)