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

В настоящее время мы выполняем миграцию нескольких сайтов с x86 win 2008 на x64 win 2008. Мы скопировали каталог config и файлы 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-битном сервере, но нам нравится мигрировать как можно скорее. Кто-нибудь знает, почему мы получаем эту ошибку?

2 ответа

Решение

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

  • Использовал ли старый сайт другой идентификатор для пула приложений, возможно, пользователь локального компьютера? Если это так, это может быть что-то внутреннее для самого приложения, которое не обрабатывает новый идентификатор должным образом.
  • На новой машине установлена ​​правильная версия.Net Framework?
  • Вы сравнивали пулы старых и новых приложений по точкам, используя представление "Дополнительные настройки"?

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

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

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

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

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