Проблема подготовки сервера 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)

    ТИА

3 ответа

Решение

Мне удалось обойти эту проблему, обновив список игнорирования в 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 привела к тому, что сервер прекратил попытки повторной подготовки вторичных серверов (другими словами, применил опцию "Enable Application Provisioning", которую я отключил)

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

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

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

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

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

Другие вопросы по тегам