• RequestQueueLimitPerSession и его распространение на старые версии .net

    Доброго времени суток! В этой статье хотел бы поделиться решением неожиданной проблемы, возникшей в одном из проектов, над которым я сейчас работаю.

    Что может быть опасного в обновлении .net 4.6.1 до .net 4.6.2? Я считал что для процесса обновления минорной версией достаточно прочитать release notes, чтобы избежать серьезных проблем. Однако, как выяснилось, Microsoft может привнести очень интересные и занимательные изменения в обход release notes, которые смогут вас занять в «скучные летние вечера и выходные дни».

    Под катом будет описание одной проблемы возникшей из-за обновления и пути её решения, а так же немного исходников .net.
    Читать дальше →
    • +11
    • 2,4k
    • 4
  • IIS Request filtering против ddos-атаки

      Лежим


      Заказчик, чьи сайты я поддерживал ранее, обратился с тем, что сайт лежит и отдает 500 ошибку. У него стандартный сайт на ASP.NET WebForms, не скажу, что очень нагруженный, но бывали проблемы с производительностью базы данных (MS SQL Server на отдельном сервере). Недавно сервер БД поменяли и перенесли данные.

      Этот сайт не основной бизнес заказчика, поэтому практически не обслуживался. У него не настроено никакого мониторинга  и сбора метрик и вообще за ним особо не следят.

      Данные телеметрии


      Какие аномалии бросились в глаза:

      1. Процесс w3wp использовал более 50% CPU (обычно сильно меньше).
      2. Количество потоков в этом процесс стабильно прирастало (сайт не успевал обслужить клиентов).
      3. Диск на сервере БД использовался на 100% (Active Time).
      4. Длина очереди обращений к диску с базами проекта была большой (обычно в районе нуля-единиц).
      5. Оперативная память на сервер БД использована полностью.
      6. Профайлер показал, что есть один горячий метод, который ходит в БД.
      Читать дальше →
      • +17
      • 6,2k
      • 8
    • Развёртывание Django 1.9 на IIS 7+

      Предисловие


      Всем привет!


      Не так давно ко мне обратились с просьбой о создании сайта. Интересный крупный проект с множеством "хочу вот это". Среди пожеланий были два главных, определивших web framework для написания, это интернационализация и панель администратора. Как уже понятно из заголовка статьи, таким framework'ом стала Django.


      На старте, и почти всё время разработки, у нас не было одной вещи — сервера. Было доменное имя, бодрым темпом разрабатывался сайт, к проекту присоединился дизайнер, но сервер нам так выделить не могли. Все показы сайта проходили на моём ноутбуке, не давая возможности заказчику сесть вечером с кружкой кофе, расслабиться и насладиться тем, что мы уже для него сделали. А также, отсутствие возможности показать нашу работу людям лишало нас получения обратной связи.


      И вот, можно сказать на днях, свершилось чудо — у нас появился сервер. И как следствие этого — эта статья.


      Читать дальше →
    • Исправлена серьезная ошибка в официальной документации по настройке SSL в web-ролях Microsoft Azure


        Хорошие новостиTM: есть небольшое, но важное развитие сюжета из этого поста, где много букв и долгая история, которая могла отвлечь часть целевой аудитории от необходимости проверить и исправить настройки. После вливания освежающих пул-запросов была обновлена официальная документация, показывающая, как правильно настраивать SSL в веб-ролях Microsoft Azure — один и два. Исправлена серьезная ошибка в примерах настроек.

        Если вы разрабатываете или сопровождаете облачный сервис с веб-ролью, самое время проверить, что настройки SSL указаны правильно и вас не настигнет в самый неподходящий момент волна недовольства пользователей, у которых КРАЙНЕ НЕОЖИДАННО без ясных причин перестало устанавливаться защищенное соединение с вашим сервисом.
        Читать дальше →
      • Вышел драйвер PDO MSSQL(pdo_sqlsrv) для PHP7

        image

        Небольшая заметка для тех, кто по роду деятельности работает с базой MSSQL через PDO,
        теперь данная возможность появилась и в PHP7

        Что такое PDO и зачем стоит им пользоваться можно прочитать в этой статье:

        habrahabr.ru/post/137664

        Скачать драйвер можно здесь:

        github.com/Azure/msphpsql/releases/tag/v4.0.2

        Установка сводится лишь к копированию соответствующей *.dll в папку PHP\ext и подключением в php.ini
        Это предварительная версия, но вполне рабочая, по крайней мере проблем за 2 дня использования замечено не было,
        работает отлично!
      • Деплой ASP.NET приложений при помощи символических ссылок

          Всем привет.
          Все мы немного нервничаем при установке нового релиза на прод. Существует много различных технологий позволяющих нам облегчить этот процесс и сделать его чуть менее нервозным. Одна из таких технологий, которую уже довольно давно облюбовали UNIX-инженеры, это использование символических ссылок, позволяющая свести к минимуму время накатки релиза и откатки на предыдущий релиз если «что-то пошло не так»(с). Этот механизм так же присутствует и в Windows, однако почему-то активно не используется. А зря. Данная статья призвана поправить это недоразумение и сделать процесс накатки релиза более приятным.


          Кадр из х/ф «Джентльмены удачи»
          Читать дальше →
        • Как не самое удачное поведение по умолчанию может годами маскировать неправильную работу

            МНОГО ДЕТАЛЕЙОчень удобно, когда благодаря правильно выбранным умолчаниям все работает само и «из коробки» и не нужно ничего настраивать. Эта история о том, что выбранные умолчания должны быть работоспособными всегда, в противном случае есть риск непредвиденного отказа после многих лет беспроблемной работы.

            Мы столкнулись с недокументированным поведением Windows Server в web-ролях Microsoft Azure, которое долгие годы маскировало неправильную настройку нашего сервиса Cloud OCR SDK, пока в один не самый прекрасный момент не привело к серьезным проблемам у отдельных пользователей.
            Читать дальше →
          • Установка Битрикс24 на IIS сервер с использованием MSSQL и AD

              На днях, встала задача протестировать этот корпоративный портал в коробочной версии. Потратив немало времени и сил, решил описать сей процесс, чтобы сэкономить кому-то лишние усилия.
              Начнем с того, что в своей организации у меня «экосистема» ПО построена на базе Windows систем и присутствует большое количество прикладных приложений, написанных под наши задачи и требовалось использование MSSQL для их интеграции. Посему, было решено выделить виртуальную машину с Windows Server для тестирования продукта.

              Почитав предлагаемые решения, решил попробовать три варианта:
              Читать дальше →
            • Добавление прокси в любое приложение на IIS

              В корпоративной среде часто возникает необходимость в веб-приложении на asp.net реализовать возможность выхода через прокси сервер (даже с авторизацией) для скачивания той или иной информации.

              Например:

              • Реализуемое ПО требует на уровне приложения-сервера скачивать с веб ресурсов ту или иную информацию
              • При размещении любой CMS требуется возможность для подключения приложения к репозиторию разработчиков для скачивания тем, плагинов и т.п. (некоторые CMS вообще не устанавливаются без предварительной авторизации на стороне сервера разработчиков)
              • В SharePoint есть множество сервисов, которые требуют прямого подключения к сайтам Microsoft (пример подключение к office.com для установки внешних приложений)
              Читать дальше →
            • Ферма IIS и Application Request Routing



                Совсем недавно мои коллеги написали несколько статей про shared-хостинг на базе Cloud Linux, а сегодня я расскажу вам про технологии Microsoft которые мы используем для услуги Windows-хостинга. Речь пойдет про связку IIS 8.5 и Application Request Routing (ARR).

                ARR — это расширение для IIS которое позволяет собирать множество серверов IIS в единую ферму. Оно позволяет производить балансировку нагрузки HTTP-трафика, использовать правила маршрутизации и может выступать в роли кэширующего Reverse Proxy-сервера для разгрузки основных серверов предоставления контента.
                Читать дальше →
              Самое читаемое