Запуск и отладка сайта локально через IIS

Разрабатывая сайты в Visual Studio намного удобнее отлаживать их не под встроенным IIS Express а под полноценным IIS. По сравнению с express-версией он имеет следующие преимущества:

  1. Можно открывать и отлаживать разрабатываемый сайт можно не только на локальной машине, но, например, на телефоне, планшете итд.
  2. Можно править код и перекомпилировать его без перезапуска iis вручную. Но для отладки самого кода действуют всё те же правила, что и с express-версией.
  3. Правка вёрстки и стилей становится удобнее

Итак, вот краткая инструкция по настройке IIS на не настольных версиях Windows. Описываемая инструкция работает на Windows 8.1 и Windows 10, на более ранних версиях теоретически должно быть то же самое (но я не проверял).

  1. Открываете классическую панель управления. В ней (в зависимости от того, какой у вас вид) — «Удаление программ», либо «Программы и компоненты». Далее слева от списка программ пункт «Включение или отключение компонентов Windows»
  2. Далее ищете «Службы IIS» и кликаете на квадрат у неё (чтобы поставить галку). Галочка поставиться не должна, проставится квадрат, но должны будут выбраться все необходимые галочки внутри. Вот как выглядят выбранные пункты у меня
  3. После того как вы нажмёте ОК и у вас установятся все службы, может потребоваться перезагрузка.
  4. После перезагрузки нужно настроить IIS для работы с вашим приложением. В поиске напишите «Диспетчер служб IIS» (у меня достаточно просто набрать iis и сразу найдётся этот диспетчер).
  5. В левой части диспетчера разверните свой компьютер и «сайты».  Нажмите на Default Web Site правой кнопкой мыши и «Добавить приложение». Далее в поле «Псевдоним» введите виртуальный адрес. Например, если введёте туда «test» (без кавычек), то ваш сайт будет доступен по адресу http://127.0.0.1/test. Физический путь — путь к вашему сайту (к папке, где есть папка bin и web.config). Остальное менять не требуется.
  6. После этого перезагрузите ваш сайт — нажмите справа «Перезапустить».
  7. Далее нужно дать полные права (чтение, запись итд) пользователю  под которым работает IIS к папке с вашим сайтом. По умолчанию это «IIS APPPOOL\DefaultAppPool»
  8. Так же может потребоваться дать доступ к БД для пользователя «IIS APPPOOL\DefaultAppPool»

После всех этих действий сайт должен стать доступным на любом компьютере локальной сети (и за её пределами при некоторых условиях).

Для отладки сайта настроенного таким образом Visual Studio должна быть запущена с правами администратора. Чтобы запустить отладку серверной части нужно в Visual Studio выбрать «Отладка», «Присоединиться к процессу», и подключиться к процессу w3wp.exe

Возможные проблемы:

Не загружаются ресурсы (стили, скрипты итд).

В консоли IIS, в Default Web Site выбрать своё приложение, и справа «Проверка подлинности». Затем найти «Анонимная проверка подлинности», нажать правой кнопкой мыши, «Изменить», и поставить кружок «Удостоверение пула приложения».

 

Скидки на хостинг

Вот уже много лет пользуюсь хостингом ihc.ru, и решил поделиться скидками на этот хостинг. Преимущества этого хостинга:

  • Низкие цены, особенно по сравнению с зарубежными хостингами.
  • На некоторые услуги предоставляется бесплатный пробный период
  • Высокая доступность. О технических работах оповещают заранее, сами работы занимают мало времени, и проводятся редко.
  • Хостинг находится в России, как следствие — низкие задержки, отличные каналы связи.
  • Отличная техподдержка, отвечают быстро, объясняют доступно, помогают при необходимости
  • Личный кабинет и сайт постоянно развивается, появляются новые услуги.
  • Компания слышит пользователей. Есть «конкурс идей», куда пользователи предлагаю идеи и голосуют за идеи предложенные другими. Популярные и нужные предложения реализовывают.
  • И многое другое…

А теперь сами коды:

Читать далее Скидки на хостинг

Ошибка в AngularJS при клике на ссылку, которая ведёт на страницу, на которой мы уже находимся

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

Но (как вы уже догадались) этого не происходило.

Код был примерно такой

<a href=".">Logo</a>

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

Примерно так он подключался:

let app = angular.module("MyApp", ["ngRoute"]);

Решение этой проблемы простое, нужно в ссылку просто добавить атрибут

<a href="." target="_self">Logo</a>

HTML: input type=number и разделитель дробной части

В HTML 5 было добавлено новое значение атрибута type у тега input — значение number. Значение полей с типом number валидируются браузерами, туда допускается вводить только числа (целые и дробные), а на мобильных устройствах отображается усечённая клавиатура, которая позволяет вводить только цифры.

Но есть у этого решения особенность (в некотором роде — недостаток) — разделитель дробной части браузер берёт из операционной системы. Например, если у вас ОС Windows с русским языком в качестве основного, то браузер будет считать валидным разделителем запятую, а цифры с точкой пропускать не будет. И даже javascript не сможет получить значение поля с невалидным содержимым (например, чтобы заменить точку на запятую).

Решение: необходимо сделать элемент таким:

<input type="tel" pattern="[0-9]+([\.,][0-9]+)?"/>

При этом сохранится браузерная валидация и на мобильном устройстве будет отображаться усеченная цифровая клавиатура.