mongodb asp.net session provider:如何在web.config中设置应用程序名称

时间:2011-11-10 10:30:46

标签: asp.net .net session mongodb web-config

问题:

我有一个自定义的MongoDB会话提供程序。 它在web.config中配置如此

<sessionState cookieless="false" timeout="20" regenerateExpiredSessionId="true" mode="Custom" customProvider="MongoSessionStoreProvider">
      <providers>
        <add name="MongoSessionStoreProvider" type="MongoSessionStore.MongoSessionStoreProvider" writeExceptionsToEventLog="true"/>
      </providers>
</sessionState>

但它会引发异常,因为应用程序名称为“/”
如何设置应用程序名称?
我没有定义任何会员提供商,我不打算很快定义。

2 个答案:

答案 0 :(得分:1)

查看source codeapplicationName属性会显示:

<add name="MongoSessionStoreProvider" applicationName="myapplicationname"
    type="MongoSessionStore.MongoSessionStoreProvider" 
    writeExceptionsToEventLog="true"/>

答案 1 :(得分:0)

您忘了不仅指定应用程序名称,还要指定连接字符串到mongodb。完整配置应如下所示:

 <sessionState cookieless="false" timeout="20" regenerateExpiredSessionId="true"
                 mode="Custom" customProvider="MongoSessionStoreProvider">
     <providers>
       <add name="MongoSessionStoreProvider"
            connectionString="mongodb://admin(admin):1@localhost:27020/" 
            applicationName="ApplicationName"
            type="MongoSessionStore.MongoSessionStoreProvider" 
            writeExceptionsToEventLog="false" />
      </providers>
    </sessionState>

一些注意事项:

  1. 应用程序名称将是mongodb中的集合名称。 (数据库名称为AspSessionStage
  2. 如果没有--auth的mongodb安装,您可以从连接字符串admin(admin):1@中取出身份验证信息。
  3. 此提供程序不会清除过期的会话(需要运行一些后台作业才能执行此操作)
  4. 您可以直接向我报告任何错误。