Ненавижу говорить вам, но я и другие могут использовать настройки по умолчанию для белого списка, чтобы контролировать фильтрацию спама.
Это означает, что все сообщения электронной почты из неизвестного источника автоматически спам и отвлекаются в папку спама. (Я не позволяю службе электронной почты удалять спам, потому что я хочу всегда просматривать приходы для ложных срабатываний, что довольно легко сделать, если вы быстро просмотрите папку.)
I даже у меня есть электронная почта от себя, отправляюсь в спам-ведро, потому что (1) я обычно не отправляю электронное письмо себе и (2) есть спамеры, которые подделывают мой адрес возврата в спаме, отправленном мне.
Чтобы выбраться из названия спама, я должен учитывать, что ваша почта может быть легитимной (от отправителя и субъектной информации) и открывать ее сначала в виде открытого текста (по умолчанию для всей входящей почты, спама или нет), чтобы увидеть, является законным. Моя папка спама не будет использовать ссылки в сообщениях электронной почты, поэтому я защищен от сложных ссылок на изображения и других ошибок.
Если я хочу, чтобы будущие поступления из одного источника, чтобы перейти в мой ящик и не были отвлечены для просмотра спама, я укажу это на свой почтовый клиент. Для тех организаций, которые используют пересылку корреспонденции и уникальные адреса отправителя для одной части почты, это слишком плохо. Они никогда не получают моего одобрения и всегда отображаются в папке со спамом, и если я занят, я никогда не буду смотреть на них.
Наконец, если электронное письмо не является разборчивым в открытом тексте, даже когда отправлено как HTML, я, скорее всего, просто удалю его, если только это не то, что я знаю, представляет интерес для меня в силу исходного и предыдущего ценного опыта.
Как вы можете видеть, это, в конечном счете, под пользователями и нет автоматизированного акта, который убедит такую систему, что ваша почта является законной только из ее структуры. В этом случае вам нужно играть красиво, не делайте ничего, что похоже на фишинг, и облегчите пользователям, которые доверяют вашей почте, чтобы добавить вас в свой белый список.
Ваш пул приложений или веб-сайт закрывается слишком рано. Увеличьте тайм-аут простоя на сайте, увеличьте время жизни пула приложений для пула, в котором запущен сайт. Увеличьте выделение памяти и лимиты запросов.
Если вы хотите знать, когда и почему что-то удаляется из кеша, вам необходимо зарегистрировать удаление элемента, используя параметр CacheItemRemovedCallback при вставке ... Тогда вы можете зарегистрируйте причину, используя аргумент CacheItemRemovedReason . Таким образом, вы можете зарегистрировать причину как одну из четырех перечисленных причин:
Обычно вы обнаружите, что Expired и Underused являются причинами для вещей, которые не имеют явных вызовов Remove, сделанных для кеша и не имеющих зависимостей.
Вы, вероятно, обнаружите, просматривая этот забавный материал, что ваши предметы не просрочены и не используются недостаточно.Скорее, я подозреваю, вы обнаружите, что AppDomain выгружается.
Это может произойти из-за изменения файлов web.config (или каталога bin, или .aspx и т. Д.). Для получения дополнительной информации о том, когда это происходит, см. Раздел Перезапуск приложения на этой странице . Когда это происходит, текущие ожидающие обработки запросы очищаются, кеш очищается, а домен приложения выгружается. Вы можете обнаружить эту ситуацию, проверив AppDomain.IsFinalizingForUnload и зарегистрировав это во время обратного вызова.
Другая причина для повторного использования AppDomain - это когда IIS решает перезапустить AppPool по любой из причин, по которым он был настроен. Примеры: xxx память была выделена в течение всего срока службы, yyy секунд времени выполнения для AppPool, ttt запланированное время перезапуска или iiii время простоя (запросов не поступало). Дополнительные сведения см. В этой статье для IIS6 или в этой статье для IIS7
Объект Cache не гарантирует, что он вообще будет удерживать кешированные объекты, а тем более в течение всего времени, которое вы предлагаете.
Если вы хотите более решительно поддержать это для этого вы можете установить CacheItemPriority.High или CacheItemPriority.NotRemovable, когда вы вставляете элемент в Cache. С приоритетом по умолчанию Normal среда выполнения имеет довольно агрессивную политику отпускания объектов при увеличении нагрузки на память.
Вдобавок к этому, по умолчанию пул приложений IIS будет перезагружаться один раз в день или около того, что очистит все в Кэш.
В документах http://msdn.microsoft.com/en-us/library/4y13wyk9.aspx говорится, что Cache.NoSlidingExpiration необходимо использовать при использовании абсолютного срока действия. .
HttpRuntime.Cache.Insert(CacheName, Price, null, DateTime.Now.AddDays(3), Cache.NoSlidingExpiration);
это может быть не ваша проблема, я только что обнаружил, что Cache.NoSlidingExpiration должно быть таким же, как TimeSpan.Zero.
Затем я бы проверил, что срок действия вашего пула приложений не истекает, и сколько кеша вы используете. Если это сайт с высоким трафиком, использующий много памяти (например, кеш-память), то у него истечет срок действия элементов кеша, поскольку память необходима для других вещей.
также проверьте последний комментарий здесь http://bytes.com / topic / net / answers / 717129-c-asp-net-page-cache-Get-Remove-too-early похоже, кто-то нашел решение вашей проблемы.
По умолчанию элементы, добавленные в кэш, не имеют установленного срока действия, так что это определенно что-то вне кеша. Я согласен с Джошем, вам следует проверить время перезагрузки в пуле приложений.
Посетите эту страницу, чтобы увидеть пример того, как вы можете добавить делегата, чтобы вы точно знали, когда ваш элемент удаляется из кеша. Это может помочь вам в устранении неполадок, если это не ваш пул приложений:
http://msdn.microsoft.com/en-us/library/system.web.caching.cache.add.aspx
~ md5sum ~