mongodb asp.net会话提供程序:如何在web.config中设置应用程序名称
问题: 我有一个自定义MongoDB会话提供程序。 它在web.config中的配置如下mongodb asp.net会话提供程序:如何在web.config中设置应用程序名称,asp.net,.net,session,mongodb,web-config,Asp.net,.net,Session,Mongodb,Web Config,问题: 我有一个自定义MongoDB会话提供程序。 它在web.config中的配置如下 <sessionState cookieless="false" timeout="20" regenerateExpiredSessionId="true" mode="Custom" customProvider="MongoSessionStoreProvider"> <providers> <add name="MongoSessionSto
<sessionState cookieless="false" timeout="20" regenerateExpiredSessionId="true" mode="Custom" customProvider="MongoSessionStoreProvider">
<providers>
<add name="MongoSessionStoreProvider" type="MongoSessionStore.MongoSessionStoreProvider" writeExceptionsToEventLog="true"/>
</providers>
</sessionState>
但它抛出了一个异常,因为应用程序名为“/”如何设置应用程序名称?
我不会定义任何成员资格提供者,也不会很快定义任何成员资格提供者。查看应用程序名属性似乎可以:
<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>
一些注意事项:
AspSessionStage
)--auth
,您可以从连接字符串admin(admin):1@
中取出auth信息不,我以前试过,没有。我还将变量applicationName替换为一个属性,其中set不执行任何操作,get返回“myapplication”,但这也不起作用。有什么东西一直在覆盖应用程序名。@困惑-有mongo配置文件吗?它比这个好得多。如果仔细查看它,您会发现它在MongoSessionStoreProvider.cs文件的Initialize中的变量config中获取提供者配置信息。但它从不设置应用程序名,所以它是虚拟路径,即“/”,这是重写我的设置的原因。。。我想知道这为什么会奏效…@Quandary:application name在数据库中用作集合名,provider在第71行使用config中的applicationName(以及连接字符串)初始化会话存储。@Andrew Orsich:Yep,已经看到了。但是,我必须更正实际执行此操作的代码。正确,我已经硬编码了connectionstring,因为我必须更新很多内容,并且不想处理可能错误的connectionstring。@Quandary:我不确定你想说什么。什么不适合你?只是应用程序名。会话提供程序将信息存储在db[StrapApplicationName]中,如果StrapApplicationName为=“/”,则会引发异常。我必须修改会话提供程序源代码以实际读取applicationName属性。在那之后,它工作得很好。