Поставщик сеанса mongodb asp.net: Как установить имя приложения в web.config - PullRequest
0 голосов
/ 10 ноября 2011

Вопрос:

У меня есть пользовательский поставщик сеансов 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 ]

1 голос
/ 10 ноября 2011

Глядя на исходный код , выясняется, что атрибут applicationName будет делать:

<add name="MongoSessionStoreProvider" applicationName="myapplicationname"
    type="MongoSessionStore.MongoSessionStoreProvider" 
    writeExceptionsToEventLog="true"/>
0 голосов
/ 10 ноября 2011

Вы забыли указать не только имя приложения, но и строку подключения к 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. Если ваша установка mongodb без --auth, вы можете извлечь информацию об аутентификации из строки подключения admin(admin):1@.
  3. Этот провайдер не очищает сеансы с истекшим сроком действия (необходимочтобы выполнить какое-то фоновое задание, чтобы сделать это)
  4. Вы можете сообщать обо всех найденных ошибках непосредственно мне.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...