如何将本地DynamoDB配置为ASP.NET会话状态提供程序

时间:2016-05-20 13:33:05

标签: asp.net-mvc amazon-dynamodb

我的任务是编写一个使用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仅作为会话提供者配置而不引用真正的亚马逊凭证或区域?

1 个答案:

答案 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