我的任务是编写一个使用Amazon的DynamoDB服务来存储ASP.NET会话状态的概念证明。我从here下载了亚马逊的本地DynamoDB服务器,并使其成功运行。我创建了一个测试MVC网站,并添加了以下NuGet包。
<package id="AWS.SessionProvider" version="3.1.0.2" targetFramework="net461" />
<package id="AWSSDK.Core" version="3.1.4.3" targetFramework="net461" />
<package id="AWSSDK.DynamoDBv2" version="3.1.4.0" targetFramework="net461" />
我将以下内容添加到web.config
。
<sessionState mode="Custom" customProvider="DynamoDB">
<providers>
<add name="DynamoDB" type="Amazon.SessionProvider.DynamoDBSessionStateStore" AWSProfileName="" Region="" />
</providers>
</sessionState>
现在我被卡住了。 Amazon的本地DynamoDB文档仅讨论定义服务URL,而不是配置文件或区域设置。亚马逊的documentation for the session provider只谈到使用真实凭据的真实在线DynamoDB服务。我在网上找到的唯一提及设置服务URL的假设是假设您在代码中创建一个DynamoDB客户端以进行任意数据访问。我似乎无法找到这三个概念之间的任何重叠。任何人都可以告诉我如何将本地DynamoDB仅作为会话提供者配置而不引用真正的亚马逊凭证或区域?
答案 0 :(得分:0)
设置属性ServiceUrl="http://localhost:8000/"
<sessionState timeout="20" mode="Custom" customProvider="DynamoDBSessionStoreProvider">
<providers>
<add
name="DynamoDBSessionStoreProvider"
type="Amazon.SessionProvider.DynamoDBSessionStateStore"
AWSProfileName="default"
AWSAccessKey="must be real"
AWSSecretKey="must be real values"
Region="eu-west-1"
ServiceUrl="http://localhost:8000/" />
</providers>
</sessionState>
来源:
https://github.com/aws/aws-dotnet-session-provider/blob/master/src/DynamoDBSessionStateStore.cs#L87