2010-07-20 2 views
6

Я переезжаю проект ASP.NET с .NET 3.5 для .NET 4.Перемещение проекта ASP.NET для .NET 4

Все прекрасно работает, если я отладки под web.dev (то есть. в Visual Studio [2010]), но как только я попытаюсь запустить это под IIS7 [.5], отладчик не может подключиться. Запуск проекта непосредственно под IIS просто заставляет его отбрасывать 403s (без субкода, поэтому не так много помогает).

Я настраиваю сайт, беря текущий (и рабочий!) Сайт .NET 3.5 и меняя AppPool на единицу с .NET .NET 4. Я подтвердил, что все права доступа к файлам кошерны (по крайней мере, с точки зрения .NET 3.5). Мне кажется, что я пропускаю какой-то шаг конфигурации здесь ...

Сообщение об ошибке при попытке подключить отладчик просто «Невозможно начать отладку на веб-сервере». Не самое полезное сообщение об ошибке в мире.

Непосредственно присоединение к связанному процессу w3wp настоятельно указывает на то, что приложение никогда не скрепляется успешно.

Основной вопрос: как я могу повлиять на это изменение с .NET 3.5 на .NET 4 для проекта, работающего под IIS?

+0

Я бы предположил, что вы также преобразовали проект в VS в .NET 4? – mxmissile

+0

@mxmissile - да, это было бы безопасным предположением. :) –

ответ

0

Начните новый проект с нуля и просто используйте web.config. Скопируйте все свои 3.5 страницы и вручную переместите элементы web.config, которые вам нужны. Сами страницы не требуют конвертации, все это в web.config. Web.config для страницы .net 4.0 на самом деле значительно меньше из-за того, что .net 4.0 - это не просто расширение .net 2.0, как 3.5.

+0

Чем отличается web.dev и IIS от web.config? –

2

Вы не можете смешивать платформы .NET в том же пуле приложений. Поэтому убедитесь, что в вашем пуле приложений есть только веб-сайты .NET 4.0.

Не забудьте также установить веб-сайт/виртуальный каталог на .NET 4.

4

Выяснил это.

.NET 4 не был установлен для целей IIS. Не спрашивайте меня, почему так было.

Выполнение asp_net_regiis -i в каталоге установки .NET 4 (\ Windows \ Frameworks \ v4.0.xxxx) в командной строке Visual Studio (x64 в моем случае) решило проблему.

1

IIS7 имеет два варианта на «веб-сайте». В IIS6 вы добавили суб-приложение в качестве «Добавить виртуальный каталог ...» в IIS7, что заставляет вас поддерживать тот же AppPool и, следовательно, версию .NET framework как веб-сайт.

Но у IIS7 теперь есть опции «Добавить приложение ...», что позволяет существенно выполнять то, что разрешено IIS6, чтобы вы могли явно указать приложение AppPool для запуска и оно может отличаться от родительского сайта.

Смежные вопросы