Назад | Перейти на главную страницу

Проблема с подготовкой сервера IIS 7.5 с помощью Web Farm Framework 2

У нас установлен WFF 2.5, который мы использовали для успешной настройки фермы и подготовки вторичного сервера в нашей тестовой среде.

Наша среда (контроллер, первичный, вторичный серверы) - это Windows 2008 Server Web Edition R2, работающая под управлением IIS 7.5 с установленным WFF 2.5.

У нас есть постоянные проблемы с заблокированным файлом .tmp в каталоге, связанном с пулами приложений. Монитор процессов указывает, что файл блокируется рабочим процессом (w3wp.exe).

Точное сообщение об ошибке: «Не удалось запустить операцию ProvisionApplications». Не удалось запустить метод «Microsoft.Web.Farm.SyncApplicationsRemoteMethod» на сервере «abc». Исключение в потоке ответов. Произошла ошибка при обработке операции «Удалить файл» на «ABC85DA.tmp». Код ошибки был 0x80070020. Процесс не может получить доступ к "C: \ inetpub \ temp \ appPools \ ABC85DA.tmp", потому что он используется другим процессом.

Если я закрою службу активации Windows, в которой AFAIK находится рабочий процесс, ошибка будет решена.

Очевидно, однако, чтобы вывести сервер в оперативный режим, нам необходимо запустить службу, и как только мы это сделаем, этап автоматической подготовки завершится ошибкой, и WFF пометит сервер как неисправный и уберет его из фермы.

Я попытался отключить подготовку приложений, сняв флажок «Включить подготовку приложений» в модуле подготовки приложений, но операция по-прежнему запускается каждые 30 секунд.

Итак - действительно две проблемы:

  1. Как решить проблему блокировки файлов во временном файле пула приложений.

  2. Как отключить автоматическую подготовку приложений на вторичных серверах? (это действительно обходной путь второго приза в случае, если нет решения проблемы 1)

    TIA

Мне удалось обойти проблему, обновив список игнорирования в c: \ windows \ system32 \ inetsrv \ conf \ applicationHost.config на контроллере веб-фермы. Я обновил раздел веб-фермы, чтобы пропустить создание папок appPool и logFiles, похоже, это устранило проблему для меня.

<webFarm>
    <applicationProvision offlineWhileSync="true" syncWebServerFromPrimary="true" periodicSync="00:00:30">
        <clear />
        <skipDirectives>                   
            <skip name="appPools" skipDirective="objectName=dirPath,absolutePath=.*appPools.*" />
            <skip name="logFiles" skipDirective="objectName=dirPath,absolutePath=.*LogFiles.*" />
        </skipDirectives>
    </applicationProvision>
</webFarm>

Перезагрузка сервера ARR привела к тому, что сервер прекратил попытки повторно инициализировать вторичные серверы (другими словами, применил параметр «Включить подготовку приложений», который я отключил)

В противном случае, я думаю, проблема с блокировкой все равно возникнет. Это может не быть проблемой, поскольку вы можете отключить службу активации процессов Windows при первоначальной подготовке службы и во время любой последующей подготовки приложений, предназначенных для синхронизации серверов.

Я подозреваю, что автоматическая подготовка по расписанию по-прежнему будет проблемой.

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

Я получаю ту же ошибку с заблокированными файлами tmp - запущенными на чистых экземплярах на Amazon EC2.

Проблема с заблокированным файлом все еще возникает? Удалось ли вам разрешить автоматическую подготовку?