使用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 SDK提供了一个名为DeleteExpiredSessions
的方法描述为:
http://docs.aws.amazon.com/sdkfornet1/latest/apidocs/html/T_Amazon_SessionProvider_DynamoDBSessionStateStore.htm清理IIS失败的过期会话的实用程序方法删除。该方法对ASP执行扫描。NET_SessionState表有一个条件,即到期日是在过去和调用删除所有返回的键。扫描的性能可能会很昂贵,所以要像每晚或每周清理一样谨慎使用此方法。
我没有使用过它,但听起来它是由你来调度一个作业,调用这个方法,而不是在SQL作业调度器中运行SQL语句在MS SQL世界。所以写一个c#程序来调用它并在Windows调度程序中调度它?或者使用IIS事件之一从您的web应用程序异步调用它?(异步的,否则你可能最终阻塞Application_Start很长一段时间,如果你正在使用该事件,例如)