IIS7 не может загрузить страницы ASPX - PullRequest
1 голос
/ 09 октября 2009

Последние несколько дней я пытался перенести довольно большое веб-приложение с IIS6 на IIS7, но каждый раз, когда кажется, что мы почти закончили, IIS7 не может загрузить страницы aspx.

Приложение представляет собой веб-приложение .net 3.5, активно использующее рефлексию и веб-сервисы. Мы используем 2 основных компонента (каждый со своим веб-сайтом в IIS7, хотя они совместно используют пул приложений): веб-интерфейс (страницы aspx) и webAPI (страницы asmx).

Часть webAPI работает отлично (насколько мы можем судить; есть несколько вещей, которые мы не можем протестировать из браузера), и страницы веб-интерфейса просто отлично загружают статические страницы HTM. Проблема в том, что как только мы пытаемся просмотреть страницу aspx (любую страницу aspx), все это просто останавливается; ошибка не регистрируется в программе просмотра событий, пока через несколько минут мы не получим предупреждение IIS 5010 (рабочий процесс игнорирует пинг).

Мы попытались перенести приложение двумя различными способами:

  1. Вручную: мы переместили все необходимые файлы и создали виртуальные каталоги, а затем преобразовали их в веб-сайты. Результат: рабочий процесс занял 100% одного ядра и вращался вечно (до тех пор, пока не был остановлен вручную)
  2. Автоматически. Используя приложение MSDeploy с сайта www.iis.net, мы заархивировали весь веб-сервер IIS6 и распаковали его в пустую установку IIS7. Нам пришлось отключить Forms Auth, чтобы избавиться от ошибки 401.2, но после этого результат был таким, что компонент webAPI по-прежнему работает просто отлично, но вместо рабочего процесса веб-интерфейса, занимающего 100% одного ядра, он вырос примерно до трети требуемой памяти, затем зависал, ничего не делая.

В любом случае, то, что произошло с точки зрения пользователя, было таким же.

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

подробности:

  • .net framework: v3.5
  • CLR версия: v2.0
  • Режим авторизации IIS: анонимный
  • ОС arch: x64
  • Арка приложения: x86
  • Бывает как с классическими, так и с интегрированными трубопроводами

Примечания:

  • Кажется, что новые веб-проекты прекрасно работают в IIS7, и, конечно же, веб-службы xml также хороши
  • временные библиотеки DLL создаются и хранятся во временной папке DLL ASP.NET, хотя рабочий процесс никогда не содержит управляемого кода.
  • Новые страницы, добавленные в проект веб-интерфейса, также показывают то же поведение (не мешало попробовать)

Обновление:

  • Мы сузили проблему до одной сборки. Это обертка для стороннего веб-контроля. Я собираюсь заменить его, посмотрим, исправит ли это проблему.

Ответы [ 3 ]

1 голос
/ 12 октября 2009

http://support.softartisans.com/kbview.aspx?ID=1318

Оказывается, это была проблема с контролем поставщика. Хотелось бы, чтобы их решение действительно сработало ...

0 голосов
/ 10 октября 2009

Используете ли вы "классический" режим конвейера для вашего пула приложений. «Интегрированный» является значением по умолчанию в IIS7, и он внес изменения в плане конфигурации. (Одним из примеров является HttpHandlers, которому нужна другая конфигурация в web.config).

«Классический» имитирует пул приложений IIS6 и должен работать с той же конфигурацией, что и для IIS6.

Если вы предпочитаете использовать Integrated Pipeline, есть некоторые инструменты, которые автоматически попытаются преобразовать ваши файлы конфигурации.

Скотт Хансельман описывает некоторые из этих инструментов в своем блоге .

0 голосов
/ 10 октября 2009

Попробуйте перерегистрировать ASP.NET:

http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx

Типичным синтаксисом командной строки будет командная строка для ASP.NET 2.0 версии вашей платформы и введите:

aspnet_regiis -i
...