Этот пакет содержит то, что я бы назвал ошибкой.Предпосылка состояния сеанса вне процесса состоит в том, что несколько экземпляров могут управлять очисткой состояния сеанса.В этом случае все экземпляры запускают этот метод ...
private void PurgeExpiredSessions()
{
using (SessionEntities entities = ModelHelper.CreateSessionEntities(this.ConnectionString))
{
foreach (SessionEntity entity in QueryHelper.GetExpiredSessions(entities))
{
entities.DeleteObject(entity);
}
entities.SaveChanges();
this.LastSessionPurgeTicks = DateTime.UtcNow.Ticks;
}
}
Проблема состоит в том, что один экземпляр удаляет объекты до того, как другой (и) и объекты выдают ошибку, описанную в посте.Я попросил авторов пакета выпустить исходный код или исправить это .. Мое непроверенное исправление текстового редактора состояло в том, чтобы добавить общедоступную виртуальную систему, чтобы можно было переопределить метод или просто изменить его тоже.Авторы пакетов действительно быстро получают ответ (ответив при публикации!), и сегодня они заявили, что работают над выпуском кода, но могут исправить это.Я запросил ETA и постараюсь проследить за этим, если я его получу.
Отличный пакет, просто нужно немного поработать.
Правильный ответ: дождитесь выпуска исходного кода или обновления исправления.Или декомпилируйте и исправьте его самостоятельно (если это согласуется с лицензией!)
* Обновление владельцев пакетов рассматривает возможность исправления на этой неделе.Да уж!** Update.SOLVED !!!Очевидно, они исправили это некоторое время назад, и я устанавливал неправильный пакет .. Я использовал http://nuget.org/packages/System.Web.Providers, и я должен был использовать http://nuget.org/packages/Microsoft.AspNet.Providers/ .. Мне не было очевидно, какой из них был устаревшим ивходит в другой пакет.Они завернули его в пустую ловушку ..
private void PurgeExpiredSessions()
{
try
{
using (SessionEntities entities = ModelHelper.CreateSessionEntities(this.ConnectionString))
{
foreach (SessionEntity entity in QueryHelper.GetExpiredSessions(entities))
{
entities.DeleteObject(entity);
}
entities.SaveChanges();
this.LastSessionPurgeTicks = DateTime.UtcNow.Ticks;
}
}
catch
{
}
}
Спасибо команде разработчиков за такие быстрые ответы и отличную поддержку !!!