Windows server appfabric что это

Накопительного обновления 7 для Microsoft AppFabric 1.1 для Windows Server

В статье описываются накопительного обновления 7 (KB 3092423) Microsoft AppFabric 1.1 для Windows Server. Данное обновление устраняет несколько проблем, влияющих на кэширование и размещения службы, предоставляемые AppFabric 1.1. Дополнительные сведения об этих проблемах см. в разделе «Дополнительные сведения».

Это накопительное обновление включает в себя все функции и исправления, которые были включены в предыдущие накопительные обновления для AppFabric 1.1 для Windows Server. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:

3042099: Накопительное обновление 6 для Microsoft AppFabric 1.1 для Windows Server

2932678: накопительного обновления 5 для Microsoft AppFabric 1.1 для Windows Server

2800726: Накопительное обновление 4 для Microsoft AppFabric 1.1 для Windows Server

2787717: накопительного обновления 3 для Microsoft AppFabric 1.1 для Windows Server

2716015: накопительного обновления 2 для Microsoft AppFabric 1.1 для Windows Server

2671763: Накопительное обновление 1 для Microsoft AppFabric 1.1 для Windows Server

Как получить накопительный пакет обновления 7 для Microsoft AppFabric 1.1 для Windows Server

Информация о скачивании

Следующий файл доступен для загрузки из центра загрузки Майкрософт:
Скачать пакет.

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

Как загрузить файлы поддержки Microsoft через оперативные службы 119591 Корпорация Майкрософт проверила этот файл на наличие вирусов. Корпорация Майкрософт использует последнее антивирусное программное обеспечение, доступное на период публикации файла. Файл хранится на защищенных серверах, что предотвращает его несанкционированное изменение.

Дополнительные сведения

Ошибки, исправленные в данном обновлении

Кэш AppFabric

Служба кэширования AppFabric периодически завершает работу со следующим исключением:

System.NullReferenceException: в экземпляре объекта не задана ссылка.
в System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
в System.ServiceModel.Channels.CommunicationObject.EndOpen (IAsyncResult результат)
в Microsoft.ApplicationServer.Caching.WcfServerChannel.OnOpen (IAsyncResult результат)
в System.Runtime.AsyncResult.Complete (логическое completedSynchronously)
—Конец трассировки стека внутреннего исключения—
в System.Runtime.AsyncResult.Complete (логическое completedSynchronously)
в System.Runtime.AsyncResult.AsyncCompletionWrapperCallback (IAsyncResult результат)
в System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame (IAsyncResult результат)
в System.Runtime.AsyncResult.Complete (логическое completedSynchronously)

При выполнении команды Stop-CacheHost AppFabric PowerShell с -Graceful переключения, не удается остановить узел кэша, и появляется следующее сообщение об ошибке:

Тип исключения: System.Collections.Generic.KeyNotFoundException
Сообщение: Данный ключ не представлен в словаре.
InnerException:
StackTrace (создается):
Функция SP IP
000000001F28DAA0 000007FEF611C96F mscorlib_ni! System.Collections.Generic.Dictionary’2[[System.__Canon, mscorlib],[System.Boolean, mscorlib]].get_Item(System.__Canon) + 0x4098ff

000000001F28DAD0 000007FF007A860B Microsoft_ApplicationServer_Caching_Management! Microsoft.ApplicationServer.Caching.AdminApi.CacheAdmin.GetNoOfNodesInServiceState (System.Collections.Generic.List’1 ByRef, Microsoft.ApplicationServer.Caching.AdminApi.ProgressDelegate Microsoft.ApplicationServer.Caching.AdminApi.ServiceStatus)+0xfb 000000001F28DBD0 000007FF007A83F1 Microsoft_ApplicationServer_Caching_Management!

Когда команда Register-CacheHost AppFabric PowerShell, команда не выполняется и появляется следующее сообщение об ошибке:

Register-CacheHost: Код ошибки : подсостояний: уже используется TCP-порт 22234.

Обратите внимание, что эта ошибка обычно возникает, если кэш порты связаны с любого IP-адреса.

После применения этого накопительного обновления AppFabric использует незаблокированном мусора (фоновой серверной сборки мусора). Незаблокированный мусора — это новая функция в Microsoft .NET Framework 4.5.

Чтобы включить эту функцию, выполните следующие действия:

Обновление серверов до .NET Framework 4.5.

Установите накопительный пакет обновления.

Активировать его, используя следующий параметр в файле DistributedCacheService.exe.config:

Перезапустите службу кэширования AppFabric для обновления вступили в силу.

Примечание. По умолчанию файл DistributedCacheService.exe.config находится в следующей папке:

%ProgramFiles%\AppFabric 1.1 для Windows Server

Известные проблемы

При удалении накопительного обновления для Microsoft AppFabric 1.1 может появиться диалоговое окно, указывающее на «возможность, которую вы пытаетесь использовать на сетевом ресурсе, который недоступен.» В этом случае не удалось удалить накопительное обновление. Чтобы обойти эту проблему, выполните следующие действия.

Загрузите Microsoft AppFabric 1.1 для Windows Server здесь.

Откройте окно командной строки и запустите файл .exe с параметром «/?». Например, запустите WindowServerAppFabricSetup_x86.exe /?.

Оставьте диалоговое окно AppFabric 1.1 для мастера настройки сервера Windows , имеет множество команд установки открывается при его отображении.

Чтобы перейти в корневой каталог загрузочного диска с помощью проводника Windows. Можно просмотреть созданную временную папку со случайно составленным именем, например «C:\ced4e5c208fd0a43edc4a195edfe47».

Читайте также:  Error no configuration file found windows

Скопируйте этот временный каталог на новое место, например, «c:\appfabrictempfiles».

Закройте диалоговое окно AppFabric 1.1 для мастера настройки сервера Windows .

Теперь попытайтесь удалить накопительное обновление и приглашение указать расположение MSI-ФАЙЛ, он может указывать на вложенную копию временный каталог (например, для «c:\appfabrictempfiles\packages»), создается «пакеты» и Отмена установки должна быть установлена.

Требования к системе

Поддерживаемые операционные системы

Это обновление может быть установлено в следующих операционных системах Windows:

Windows Vista с пакетом обновления 2 (SP2)

Windows Server 2008

Windows Server 2008 R2

Windows Server 2012

AppFabric можно установить в следующих операционных системах:

Windows Server 2012

Windows Server 2008 R2

Windows Server 2008 R2 с пакетом обновления 2

AppFabric может быть установлена для разработки и тестирования в следующих операционных системах:

Windows Vista с пакетом обновления 2

Требования к разрешениям

Перед применением данного накопительного обновления, необходимо иметь учетные данные администратора на компьютере, где устанавливается программное обеспечение.

Предварительные условия

Чтобы применить этот накопительный пакет обновления, необходимо установить следующие продукты:

В Windows Server AppFabric 1.1

Microsoft .NET Framework 4.5

Необходимость перезагрузки

Может потребоваться перезагрузить компьютер после установки этого накопительного пакета обновления.

Сведения о файлах

Английская версия этого накопительного пакета обновлений содержит атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента Дата и время в панели управления.

Для всех поддерживаемых версий систем на базе x86 Microsoft AppFabric 1.1 для Windows Server

Введение в Windows Server AppFabric. Сервис Caching Services


Одно из основополагающих правил построения приложений гласит: разработчики не должны тратить свое время на построение инфраструктуры. Даже не смотря на то, что каждое приложение требует некоторую поддержку в виде сервисов, люди, которые разрабатывают эти приложения должны фокусироваться только на создании значимом для своих пользователей функционале. Какая бы не требовалась инфраструктура, он должна предлагаться платформой, для которой приложение строится.

Принимая это во внимание, одним из способов улучшить платформу является предложение лучшей инфраструктуры приложений на ней. И именно это является целью Windows Server AppFabric. Предлагая набор расширений для Windows Server, Microsoft стремится упростить для разработчиков создание быстрых, более масштабируемых и более управляемых приложений.

Первый выпуск Windows Server AppFabric содержит две части (сегодня доступна версия 1.1 со множеством нововведений. — Прим. пер.):

  • Сервис AppFabric Caching Services, который позволяет ускорить доступ к часто используемым данным приложений
  • Сервис AppFabric Hosting Services, который позволяет упросить запуск и управление сервисами созданными на базе WCF и особенно созданными на базе Windows Workflow Foundation

Windows Server AppFabric предлагает расширения для роли Application Server и эти расширения бесплатны для использования вместе или раздельно. В этом введении рассматриваются обе части AppFabric.

AppFabric Caching Services

Одним из способов улучшить производительность и масштабируемость множества приложений является ускорение их доступа к данным. Например, для ASP.NET приложений легко создать масштабирование бизнес-логики: просто разместите несколько копий логики на разных серверах, а затем распределите между ними нагрузку. Улучшение этого аспекта производительности приложений может быть легко достигнут с помощью большего числа серверов.

Но в случае если все эти сервера зависят от одного сервера БД, доступ к данным может быстро стать узким местом вашей архитектуры. Добавление новых серверов не поможет, когда странице ASP.NET придется ожидать необходимые ей данные. Одно из решений запускать сервер БД на более мощной машине. Это может сработать, но и тут существуют ограничения: вам придется масштабироваться заменяя сервер на все более и более мощные машины и такая замена может стать слишком дорогостоящей. Что нам на самом деле нужно, так это способ масштабирования, при котором часто запрашиваемые данные были доступны на нескольких серверах, что позволит нам избежать узкого места в виде одного сервера.

Эффективный способ достижения этого — это создание распределенного кэша, который распространяет данные среди нескольких компьютеров. Вместо того, чтобы отсылать каждый запрос на один сервер БД, приложение ASP.NET сможет получить необходимые данные от одной из соседних машин. Нагрузка будет распределенной и приложение начнет работать быстрее. Это именно тот функционал, который предлагает сервис AppFabric Caching Services.

Читайте также:  Windows 10 принтер не печатает изображения

Как работает AppFabric Caching Services

Основным компонентом сервиса AppFabric Caching Services является клиент кэша, например страница ASP.NET, которая обращается к кластеру кэша содержащего некоторое количество серверов кэша. Каждый сервер кэша запускает экземпляр сервиса AppFabric Caching Services и поддерживает доступ к некоторому набору закэшированных данных. Каждый клиент кэша может так же поддерживать свой локальный кэш данных, используя специальные компоненты поставляемые вместе с AppFabric Caching Services. На рисунке 1 представлена схема всех компонентов:


Рис.1. Схема организации AppFabric Caching Services

Когда клиент кэша впервые получает некий кусок данных, например информацию переданную пользователем в ASP.NET-приложение или значения прочитанные из БД, клиент может сохранить эту информацию с уникальным именем в кластере кэша AppFabric Caching Services (или как будет рассказано далее, приложения ASP.NET могут сохранять информацию прозрачно через объект Session, так что даже не потребуется переписывать код у имеющегося приложения). Для клиента все остальные сервера кэша в кластере выглядят как одно большое хранилище — клиент никогда не знает и ему не нужно знать на каком из физических серверов хранятся его закэшированные данные. По желанию, клиент может сохранять данные и у себя в локальном кэше.

Когда клиенту снова требуется получить доступ к тем же данным, он запрашивает их через указанное уникальное имя. Этот запрос проверяет локальный кэш (если такой есть). Если данные найдены, то клиент использует их из локального кэша. Если данных нет в локальном кэше, запрос отправляется в кластер кэша. Если данные есть в кластере, клиент использует их. Весь этот процесс прозрачен для клиента, он просто отправляет запрос и AppFabric Caching Services берет на себя все остальное. В случае, если данные не были найдены в кластере кэша, клиенту придется запрашивать данные в БД.

Сервис AppFabric Caching Services на этапе разработки носил кодовое имя «Velocity», имя которое точно определяет что этот сервер делает: он позволяет сделать повторяющиеся запросы к данным быстрее. Вместо того чтобы делать множество однотипных запросов к БД, этот сервис позволяет получить данные прямо из локальной или распределенной памяти. Для приложений, которые часто запрашивают одинаковые данные, а таких очень много, кэширование значительно улучшает производительность и масштабируемость.

Сервис AppFabric Caching Services спроектирован для использования с .NET-приложениями, так что кэшируемые данные могут быть сериализованы в объект .NET. Поместив однажды объект в кэш, клиент может затем обновить его или удалить из кэша. Сохраненные в кэше элементы так же могут быть удалены из кэша самим сервисом по причине истечения срока хранения или в связи с необходимостью разместить в кэше более актуальные данные. Данные в локальном кэше могут так же устаревать, кроме того для локальных данных может быть установлена синхронизация с такими же данными из распределенного кэша для внесения изменений и синхронного удаления.

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

Кэширование полезно при работе с разными типами данных. Например, кэширование весьма полезно при работе с неизменяемыми во времени данными, которые запрашиваются разными клиентами (информация о каталоге онлайн-поставщика). Другой хороший пример использования кэширования — это хранение изменяемых данных, которые однако потребляются только одним клиентом, например, информация о сессии ASP.NET. И снова, этот пример описывает случай когда проблемы управления одновременным доступом к кэшированным данным не возникает.

Читайте также:  Android приложения для mac os

Но что насчет того, когда данные, которые постоянно изменяются должны одновременно потребляться большим числом клиентов? Кэширование может быть использовано и в этом случае, но с одной оговоркой: необходим контроль за одновременным доступом. Для того, чтобы адресовать эту проблему сервис AppFabric Caching Services поддерживает оба оптимистичный контроль одновременного доступа основанный на назначении номера версии и пессимистичный контроль одновременного доступа использующий явные блокировки.

Сценарий: использование кэширования в приложении ASP.NET

Приложения ASP.NET являются наиболее важными клиентами для сервиса AppFabric Caching Services. Как было сказано ранее, данные хранимые в объекте сессии ASP.NET самый очевидный кандидат для кэширования. На самом деле сервис предлагает встроенную поддержку для этого — разработчику необходимо только задать опции конфигурации и объект сессии будет прозрачно сохраняться в кластере кэша. Обратите внимание: это означает, что разработчики ASP.NET могут получить преимущества распределенного кэширования без модификации кода их приложения. Это позволяет использовать несколько копий веб-серверов с запущенными экземплярами приложения ASP.NET без использования SQL Server для хранения данных сессии. На рисунке 2 показано как этот механизм работает:


Рис.2. Схема работы ASP.NET-приложения с AppFabric Caching Services

Этот простой сценарий начинается с того, что пользователь отправляет некоторую информацию, которую ASP.NET сохраняет в пользовательский объект сессии (шаг 1). Веб-сервер, который обрабатывает запрос, сконфигурирован так, чтобы кэшировать объекты сессии в кластере AppFabric Caching Services и поэтому пользовательские данные записываются в один или более серверов кэша (шаг 2). Следующий запрос от пользователя основывается на данных, сохраненных на шаге 1, но этот запрос обрабатывается уже другим сервером (шаг 3). Код ASP.NET на этом сервере обращается к тому же объекту сессии, что на деле означает прозрачный доступ к кластеру кэша для доступа к данным (шаг 4). Это позволяет информации полученной на шаге 1 быть доступной для приложения. Обратите внимание, что нам не пришлось оперировать с БД для хранения информации, а так же нам не требуется чтобы запросы пользователя обрабатывал один и тот же сервер. Результат работы этой инфраструктуры — повышенная производительность и улучшенная масштабируемость ASP.NET-приложения.

Сценарий: использование механизма высокой доступности

Сервис AppFabric Caching Services сохраняет все данные в памяти — они не записываются на диск. По умолчанию, каждый кэшируемый объект хранится только на одной машине в кластере кэша. Для того, чтобы увеличить надежность, в случаях когда сервер становится недоступным, AppFabric Caching Services предлагает поддержку механизма высокой доступности. Этот механизм позволяет создавать дублируемые копии кэшированных данных на других машинах в кластере кэша. Если сервер кэша, который хранит первичную копию данных, становится недоступным, то данные будут получены из вторичного хранилища. Рисунок 3 демонстрирует всю идею:


Рис.3. Высокая доступность AppFabric Caching Services

В этом примере, механизм высокой доступности выключен, так что каждый элемент кэшируемых данных сохраняется в двух разных серверах кэша. Первичная копия, показанная на рисунке в виде залитой фигуры, принимает все изменения с данными. Эти изменения автоматически реплицируются на вторичную копию, представленную в виде пустой фигуры. Здесь, сервер кэша содержащий первичную копию данных X становится недоступным (запланированно или случайно, шаг 1). Когда клиент кэша запрашивает данные X (шаг 2) кластер кэша скрытно перенаправляет запрос к вторичной копии и возвращает значение (шаг 3).

Этот пример показывает чтение данных, но и запрос на обновление будет точно так же обработано, когда сервер кэша с первичными данными будет недоступным. Как только AppFabric Caching Services определяет, что сервер с первичными данными недоступен, существующий сервер со вторичными данными становится первичным плюс создается новая вторичная копия на одном из доступных серверов. Все это прозрачно для клиента, просто работает так как будто с серверами ничего не происходило.

Независимо от того используется или нет механизм высокой доступности, сервис AppFabric Caching Services позволяет ускорить доступ к часто запрашиваемым данным. Это очень полезный функционал расширяющий имеющую инфраструктуру Windows Server.

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

Оцените статью