问题:
我有一个自定义的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>
但它抛出了一个异常,因为应用程序名称为"/">
如何设置应用程序名称
我不会定义任何会员提供商,也不会很快定义一个
查看源代码,applicationName
属性将执行以下操作:
<add name="MongoSessionStoreProvider" applicationName="myapplicationname"
type="MongoSessionStore.MongoSessionStoreProvider"
writeExceptionsToEventLog="true"/>
您不仅忘记指定应用程序名称,还忘记指定到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>
一些注意事项:
- 应用程序名称将是mongodb中集合的名称。(数据库名称为
AspSessionStage
( - 如果您的mongodb安装没有
--auth
,您可以从连接字符串admin(admin):1@
中取出auth信息 - 此提供程序不清除过期的会话(需要运行一些后台作业才能清除(
- 你可以直接向我报告你可能发现的任何错误