суббота, 27 февраля 2010 г.

Переезд с Windows 2003/IIS6/MsSql2005 на Windows 2008/IIS7/MsSql2008

Намедне пришлось "переезжать" ASP.NET/MSSQL сайт, разработанный в расчете на Windows 2003/IIS6/MsSql2005 на Windows 2008/IIS7/MsSql2008 (просто потому что Windows 2003/MsSql2005 для новых заказчиков купить уже нельзя, только Windows 2008/MsSql2008). Непонятки пришлось собирать по кусочкам, поэтому решил заскладировать в одном месте.

  1. Законнектиться к локальному SQL server по имени .\MSSQLSERVER теперь нельзя, хотя установлен он таки с именем инстанции MSSQLSERVER, надо писать (local)
  2. Ok, запускаю инсталлятор сайта, вписываю (local), однако SQL Server все равно не виден. Оказывается упразднили SQLDMO :( Проблема решается установкой компонентов обратной совместимости с Microsoft SQL Server 2005 SQLServer2005_BC.msi из пакета дополнительных компонентов для Microsoft SQL Server 2008.
  3. Следующий шаг в инсталляторе, и - теперь он не видит IIS7, чтобы создать сайт. Причина аналогичная - компоненты IISNamespace отсутствуют как класс.
    Решение даже попроще - при настройке ролей сервера надо дополнительно инсталлировать компоненты, обеспечивающие совместимость со средствами управления IIS6:



    Уфф, инсталлятор отработал.
  4. Запускаю сайт, первая же страничка, которая обращается к базе выдает:
    "System.Data.SqlClient.SqlException: Ошибка входа пользователя "IIS APPPOOL\DefaultAppPool"".
    Решение такое - открываем диспетчер служб IIS, заходим в настройки дополнительных параметров для DefaultAppPool:



    В этих настройках находим параметр Удостоверение (Identity) и изменяем учетную запись с ApplicationPoolIdentity на LocalSystem:



    Чудо - данные из базы появились на страничках.
  5. Радоваться однако рано - на сайте нет ни одной картинки, которые генерируются при помощи HttpHandlers. Оказывается IIS7 не видит обработчиков, зарегистрированных в Web.config в секции <system.web><httpHandlers> и их нужно перетащить в <system.webserver><handlers>, добавив для правильности формата атрибуты name и preCondition.
  6. Остался не работающий модуль (IHttpModule), определяющий разрешение экрана клиента. Решение аналогичное - запись для него, которая была в <system.web><httpModules> надо вставить в <system.webServer><modules>.
  7. И последняя мелочь - нормально отображавшаяся картинка, заданная как background-image: url(/images/plan.gif) показываться не хочет. Так - background-image: url(~/images/plan.gif) - тоже. Отображается только так - background-image: url(images/plan.gif).
Картинки появляются, все остальное тоже вроде как фунциклирует, рабочий день прошел.

пятница, 5 февраля 2010 г.

Искусство и необходимость


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


Почему-то мне кажется что и в других подобных областях типа хождения под парусом дело обстоит точно также.