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

IIS7 мигрирует с 32-битной на 64-битную проблемы

В настоящее время мы находимся в процессе миграции нескольких сайтов с x86 win 2008 на x64 win 2008. Мы скопировали каталог конфигурации и wwwroot со старого сервера на новый сервер, но когда мы запускаем сервер, мы получаем страницу с ошибкой 503 и в журнале событий 5 предупреждений, а затем ошибка.

Предупреждение:

A listener channel for protocol 'http' in worker process '2060' serving application pool 'SiteAppPool' reported a listener channel failure.  The data field contains the error number.

Xml события:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" /> <EventID Qualifiers="32768">5139</EventID> <Version>0</Version> <Level>3</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2011-04-14T11:10:04.000Z" /> <EventRecordID>334493</EventRecordID> <Correlation /> <Execution ProcessID="0" ThreadID="0" /> <Channel>System</Channel> <Computer>WEBSRV64</Computer> <Security /> </System> <EventData> <Data Name="AppPoolID">SiteAppPool</Data> <Data Name="ProcessID">2060</Data> <Data Name="param3">0</Data> <Data Name="ProtocolID">http</Data> <Binary>7E000780</Binary> </EventData> </Event>

Мы получаем 5 из них, но все с другим номером рабочего процесса.

После этого получаем такую ​​ошибку:

Application pool 'SiteAppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

Мы абсолютно не понимаем, почему возникает эта ошибка, мы сделали копию сайта 1 на 1. В настоящее время мы все еще работаем на 32-битном сервере, но мы хотели бы выполнить миграцию как можно скорее. Кто-нибудь знает, почему мы получаем эту ошибку?

Может быть много всего, но мне приходит в голову несколько вещей:

  • Использовал ли старый сайт другой идентификатор для пула приложений, возможно, пользователя локального компьютера? Если это так, это может быть что-то внутреннее для самого приложения, которое не обрабатывает новый идентификатор должным образом.
  • Установлена ​​ли на новом компьютере соответствующая версия .Net Framework?
  • Сравнивали ли вы по пунктам старый и новый пулы приложений с помощью представления «Дополнительные параметры»?

Если вы создадите новый сайт / пул приложений и примете настройки по умолчанию, будет ли это по-прежнему делать это для нового сайта?

Скорее всего, это компонент вашего сайта, несовместимый с x64. Это может быть фильтр isapi или, возможно, какой-то управляемый код или вызов COM +.

Если он сразу же не выполняет HTTP-запрос, скорее всего, это фильтр isapi. Вы можете подтвердить, отключив все фильтры и протестировав страницу test.html. Затем добавляйте вещи обратно, пока снова не выйдет из строя.

У вас есть 2 решения:

  • Самый простой: запустите пул приложений в 32-битном режиме. В любом случае, это хорошая обстановка. Вы можете установить его в расширенных свойствах пула приложений, что является одним из основных параметров. Установите его как пул приложений по умолчанию, и будущие пулы приложений также будут настроены таким образом. В IIS7 вы можете использовать верхнюю память x64, продолжая работать с пулами приложений в 32-битном режиме.
  • В качестве альтернативы, как только вы сузите круг рассматриваемого компонента, получите обновление от поставщика.