ASP.NET Глобальное / Статическое хранилище? - PullRequest
4 голосов
/ 15 сентября 2010

У меня есть потокобезопасный объект, который является частью API, ранее использовавшегося в сценариях Windows Service / Client. Этот потокобезопасный объект по сути является одноэлементным и хранится в статической переменной, так что все вызывающие могут получить доступ к одному и тому же состоянию.

Этот API недавно начал использоваться в приложении ASP.NET, и я подозреваю, что некоторые странные действия, которые мы наблюдаем, могут быть связаны с неожиданным поведением AppDomain / жизненного цикла. Поэтому мне было интересно, смогу ли я получить подтверждение:

Является ли статическая переменная надежно доступной для всех запросов , или ASP.NET делает какую-то хитрость, имея несколько доменов приложений для нескольких запросов?

Я понимаю, что это будет иметь место для веб-сада ... но наш IIS настроен на использование только 1 процесса и настроен на перезапуск только один раз в день

1 Ответ

1 голос
/ 16 сентября 2010

Статическая переменная должна быть одинаковой для всех запросов в 1 рабочем процессе. Я бы предложил вам добавить журналы в ваше приложение asp.net, особенно в application_start / stop и в статический конструктор синглтона, чтобы увидеть, что происходит. Надеюсь это поможет.

...