Службы обновления WCF - PullRequest
1 голос
/ 16 марта 2012

В настоящее время у нас есть производственное приложение, которым пользуются около 400 человек.Приложение использовало связывание WSHTTP с нашими службами WCF.Когда мы делаем релизы на стороне сервера, мы обычно делаем это поздно ночью, когда мало кто включен.Насколько я понимаю, обновление приведет к перезапуску IIS, и оно будет беспрепятственно для конечного пользователя.

  1. Верно ли мое понимание?
  2. Есть ли причина, по которой мы можем это сделать?t обновить наши сервисы WCF в середине дня?
  3. Есть ли какие-либо воздействия, которые вы видели на подключенных пользователей?

Ответы [ 2 ]

1 голос
/ 17 марта 2012

В ответ на ваши вопросы

  1. Я не согласен с тем, что повторное использование хост-процесса будет беспрепятственно для пользователей.Любые обрабатываемые запросы будут выгружены, и потребители получат исключения на основе доступности
  2. Да, по той же причине, что и 1.
  3. Да, их запросы не выполняются, и они в лучшем случае получают ошибку мыла, котораязатем они должны обработать.

Если у вас есть требование высокой доступности, в идеале вам следует направлять запросы к конечной точке отработки отказа, пока вы исправляете основную.Или вы можете рассмотреть возможность использования очередей, а не синхронных вызовов, что даст вам возможность обновляться в рабочее время.

1 голос
/ 16 марта 2012

Пользователи будут подвержены влиянию, только если используемые конечные компоненты являются сессионными, т.е. а) включена защита WCF на уровне сообщений, (мои 2 цента б) надежный сеанс

Это потому, что всякий раз, когда какие-либо изменения вносятся в папки, отслеживаемые ASP.NET (есть хорошие блоги о том, какие каталоги отслеживаются), пул приложений выгружается и перезагружается. Теперь WCF хранит токены (при использовании защиты сообщений) в памяти. Если домен приложения выгружен, токен, используемый для аутентификации пользователя, становится недействительным. Таким образом, если клиент пытается продолжить его использование, приложение-служба не находит его и выдает.

Решением этой проблемы может быть использование маркера контекста безопасности с состоянием (SCT) в безопасном сеансе, сеанс может выдержать перезапуск службы, http://msdn.microsoft.com/en-us/library/ms731814.aspx

P.S .: Всегда рекомендуется останавливать пул приложений IIS во время развертывания, чтобы избежать непредвиденных проблем с теневой копией ASP.NET.

НТН, Amit

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