outcoldman
outcoldman Denis Gladkikh

Переносим сайт в Windows Azure Web Sites

outcoldman, outcoldman.ru, outcoldman.com, Azure, ASP.NET MVC, and Mobile Devices

Прошло уже более полутора года с того момента, как я обновлял что-то на своем сайте. А это единственный веб-проект, в котором я могу поучаствовать, связанный с веб-разработкой, по которой, как выяснилось на днях, я безумно скачал. Я поставил перед собой следующий список задач, которые хотел выполнить на протяжении этих полутора лет:

Как понятно из названия топика, с последней задачей я не справился. Из-за политики orcsweb выставлять medium trust для shared сайтов, что доставляет определенные неудобства. Так, например, возникают проблемы с использованием пакета AntiXSS, а так же есть мелкие проблемы с SQL Server CE.

Windows Azure Web Sites

Опция WebSites находится до сих пор в Preview. Приятно, что до 10 Shared Web Instance можно получить бесплатно, чтобы совершенно спокойно тестировать приложения. Но, как только захочется использовать свой персональный домен, то придется перевести Web Instance на Paid Shared Instance Model, которая, как обещают, будет стоить около 10-15$ в месяц. Кстати, я не очень понял ценовую политику. Если процессор будет использоваться только 1 минуту из часа, то и платить я буду только за эту минуту или за полный час?

На днях так же объявили, что Web Sites поддерживают .NET Framework 4.5, а это был еще один из приятных пунктов для меня забросить идею с orcsweb и все же пощупать наконец-то это сладкой облако.

Я не буду по пунктам рассказывать, как создать новый Web Site Instance. Документации более чем достаточно. К тому же весь портал Windows Azure напичкан видео о том, как все это делать. Я просто скажу – обязательно попробуйте. Если нет аккаунта на Windows Azure, то просто возьмите Trial, который, скорее всего, запросит кредитку. Но при регистрации можно установить лимит в 0$, что дает гарантию того, что, если вы случайно что-то включите платное, или вы превзойдёте бесплатные лимиты, то услуга просто перестанет вам предоставляться. У всех free shared instance будут доменные имена вроде x.azurewebsites.net, и их спокойно можно использовать как пробную площадку.

Настройки, кстати, минимальные. Чтобы загрузить сайт в облако, нужно из портала управления нужно скачать Publish Profiler, который после этого импортировать в Visual Studio (на веб-проекте правой кнопкой, дальше Publish…, а дальше не заблудитесь).

Поддержка мобильных устройств

Уж очень я не хотел реализовывать поддержку мобильных устройств, так как думал, что единственный способ добиться этого – это рендерить страницы специальным образом для них на сервере. Это то, что я помнил еще с ASP.NET. Не передать словами, как я был приятно удивлен, увидев насколько это просто реализовать. Нужно сделать две вещи, определить viewport для мобильных устройств в head:

А так же указать специальное переопределение стилей для случая, когда сайт будет в ширину меньше определённого значения

Самый просто вариант – это ознакомиться с новым темплейтом в ASP.NET MVC 4.0, в котором все это реализовано.

Перенос из зоны ru в зону com

Сначала я перекинул оба моих домена на мой Instance в облаках. Потом в web.config я добавил специальные правила для Url Rewriter (в облаках он уже сразу установлен) в секцию system.webServer:

После этого я для начала разобрался, как сказать сервисам Google Web Master и Google Analytics, что я перенес домен. Сделать это оказалось просто, в интернете полно информации об этом. Со вторым пришлось немного повозиться, так как ему захотелось провалидировать еще зачем-то www версии сайтов отдельно.

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

Что дальше?

Как я уже сказал, я скучал по веб-разработке. Мне безумно стыдно выкладывать исходный код всего моего сайта на github, но я планирую это сделать, хочу привести код немного в порядок. Часто пробую что-то новое, вроде Entity Framework или SQL Server CE, я не ставил цели сделать это, я ставил цель попробовать это, и всегда это заканчивалось тем, что я был рад, что работает и откладывал рефакторинг на потом. Знакомая ситуация в разработке, не правда ли?

Единственный момент, который я не понял, каким инструментом смотреть логи из 0:/LogFiles/http/RawLogs/*.log? Формат которых:

# date time s-sitename cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken

Лучший вариант, который я нашел – это импортировать его в Excel.

Have feedback or questions? Looking for consultation?

My expertise: MongoDB, ElasticSearch, Splunk, and other databases. Docker, Kubernetes. Logging, Metrics. Performance, memory leaks.

Send me an email to public@denis.gladkikh.email.

The content on this site represents my own personal opinions and thoughts at the time of posting.

Content licensed under the Creative Commons CC BY 4.0.