работает asp.net 3.5 и asp.net 2.0 на одном сайте - PullRequest
1 голос
/ 12 марта 2010

Мы запускаем ASP.Net 2.0 на нашем корпоративном веб-сайте, и я бы хотел, чтобы он работал на ASP.Net 3.5 как можно более плавно. Архитектура проекта / решения в VS 2005 - это веб-проект ASP.Net 2.0 и проект уровня доступа к данным .Net 2.0, который используется кодом сайта.

При открытии проектов в новом решении VS 2008 они, казалось, были преобразованы в .Net 3.5 с минимальными усилиями - они правильно построены из коробки, успешно развернуты и, кажется, работают просто отлично, что точно Я ожидаю, учитывая, что .Net 2.0 и 3.5 имеют общее время выполнения. Основное различие после преобразования заключается в том, что указанные dll файла web.config теперь являются версиями 3.5.

Что я хотел бы сделать, это обновить сайт по частям; по мере внесения изменений в данную страницу отправляю версию 3.5 этой страницы нашему веб-серверу и не обновляю весь сайт сразу. При тестировании на нашем устройстве dev этот подход, похоже, работает нормально - код сайта взаимодействует со слоем доступа к данным .Net 3.5 без затруднений, на нескольких страницах выполняется код 3,5 страниц (я имею в виду, что они запуск сборок, собранных в VS 2008 - сайт использует одностраничные сборки для кода позади), 3.5 web.config на месте, и большая часть сайта работает со сборками кода, созданными в VS2005. Все выглядит отлично.

Что заставляет меня беспокоиться, что я что-то упускаю. Эта архитектура работоспособна, или есть проблема, лежащая в том, чтобы ждать m, который я не рассмотрел?

Ответы [ 2 ]

5 голосов
/ 12 марта 2010

На самом деле, ASP.NET 3.5 не существует. Это просто ASP.NET 2.0 с некоторыми дополнительными сборками. Если вы посмотрите на карты сценариев для сайта «ASP.NET 3.5» в IIS, то обнаружите, что они указывают на один и тот же файл (c: \ windows \ microsoft.net \ framework \ v2.0.50727 \ aspnet_isapi.dll) .

Единственное, на что нужно обратить внимание - это наследование web.config. Если в родительском виртуальном каталоге есть файл web.config, содержащий записи, специфичные для .NET 3.5, то дочернее приложение .NET 2.0 не сможет прочитать эти разделы конфигурации и выдаст исключение.

Обратите внимание, что эта история отличается от фиаско обновления .NET 1.1 и .NET 2.0. .NET 1.1 использует CLR, отличный от .NET 2.0, поэтому карты сценариев будут другими. Хуже того, простая установка .NET 2.0 на сервере обновит карты сценариев, чтобы они указывали на .NET 2.0! Поскольку .NET 2.0 сломал некоторые приложения .NET 1.1, это может вызвать проблемы.

На самом деле, это вызвало у меня серьезные затруднения, когда я установил приложение .NET 2.0 Winforms на рабочий сервер. Boom.

1 голос
/ 12 марта 2010

.NET 3.5 - это, по большей части, надмножество .NET 2.0. Может быть несколько ошибок, где были сделаны незначительные изменения, которые поймают людей, полагающихся на неясные функции, но по большей части вы должны быть в порядке. У меня есть сайты, на которых работает код .NET 3.5 и .NET 2.0 на одном веб-сервере без проблем.

...