Как реализовать общее состояние в приложении ASP.NET MVC 3? - PullRequest
0 голосов
/ 04 января 2012

Я пишу базовый сервис RESTful и решил использовать ASP.NET MVC 3 для этой задачи.Мое приложение будет отвечать за поддержание постоянного подключения к серверу для каждого пользователя (на данный момент).Я предполагал, что Application_Start - это место для регистрации статического / общего состояния (например, постоянных подключений), но после прочтения документации для Unity.MVC3 выясняется, что каждый цикл запроса / ответа будет запускать создание служб (вызывая Application_Start).

Документация , на которую я ссылаюсь , гласит:

При каждом запросе один экземпляр UpperCaseService, один LowerCaseService и один ExampleContext создаются DependencyResolver через Unity.В конце запроса ExampleContext автоматически удаляется

После прочтения другой документации и, как я уже предполагал, Application_Start будет вызываться для каждого порождаемого AppDomain (опять же предполагается, что это будет в непосредственной близости).сколько ядер имеется на сервере).

Итак, каков будет эффективный способ поддержания набора постоянных подключений к серверу, которые переживают фазу запроса / ответа и, если возможно, совместно используются?между всеми доменами приложений, созданными сервером IIS?

Можно упомянуть, что этот веб-сервис будет использоваться только другим веб-сайтом.По сути, это прокси-сервер аутентификации, однако в будущем он собирается сделать гораздо больше.Поэтому я не могу просто кэшировать ответ, так как будущие запросы потребуются, и повторная проверка подлинности не вариант.

1 Ответ

1 голос
/ 04 января 2012

Если вы хотите пережить перезапуск AppDomain и разделить состояние между несколькими приложениями ASP.NET, вам придется выйти из процесса IIS и сохранить его в центральном месте, доступном для всех приложений. База данных - хороший кандидат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...