У нас установлен 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)
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.
Проблема с заблокированным файлом все еще возникает? Удалось ли вам разрешить автоматическую подготовку?