2010-09-15 2 views
4

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

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

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

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

ответ

1

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

+0

Хорошо, это то, что я думал, но хотел удвоить мое предположение. Благодаря! –

+0

Этот ответ неверен. В .NET область статической переменной - это AppDomain, а не процесс. Рабочий процесс ASP.NET может содержать более одного AppDomain. – richb

+0

@richb, есть ли причина, почему вы сделаете это в реальном приложении ASP.NET? –

Смежные вопросы