Автоматическая настройка Application Pool в Windows Azure Web Role

Для чего может потребоваться изменить настройки по умолчанию? Например, если при старте выполняется операция по скачиванию файла из блоба на 100Гб, что занимает несколько минут, то запуск вашего пула подвисает. А так как есть настройка его пингования раз в полторы минуты, то управляющий IIS может решить что запуск провалился и прервать передачу данных, убив процесс и запустив новый, который опять подвиснет при попытке скачать большой файл. Выход следующий.
1. Добавьте управляющую библиотеку - Add Microsoft.Web.Administration DLL to the project reference. (Path of Microsoft.Web.Administration DLL: C:\Windows\System32\inetsrv).

2. Установите ее копирование - Set Copy local property of the above DLL to true. (Right click on the DLL -> properties -> copy local = true)

3. Для изменения настроек нужны специальные привилегии, которые даются - Run the WebRole in elevated execution context. (Add the below tag in servicedefinition.csdef file to run the code in elevated privileges)
Runtime executionContext="elevated"

4. В функцию OnStart() запуска роли вставляем следующий код:

Copy Source | Copy HTML
  1. /// <summary>
  2. /// Запуск роли
  3. /// </summary>
  4. /// <returns></returns>
  5. public override bool OnStart()
  6. {
  7.     try
  8.     {
  9.         ConfigureAzureDiagnostics();
  10.         ServerManager iisManager = new ServerManager();
  11.         //iisManager.ApplicationPoolDefaults.ProcessModel.PingingEnabled = false;//запрещаем пинги! НО ТАК НЕЛЬЗЯ
  12.         iisManager.ApplicationPoolDefaults.ProcessModel.PingResponseTime = TimeSpan.FromMinutes(20);
  13.         iisManager.ApplicationPoolDefaults.ProcessModel.PingInterval = TimeSpan.FromMinutes(5);
  14.         iisManager.ApplicationPoolDefaults.ProcessModel.StartupTimeLimit = TimeSpan.FromMinutes(20);
  15.         iisManager.ApplicationPoolDefaults.QueueLength = 3000;
  16.         //iisManager.ApplicationPoolDefaults.Recycling.PeriodicRestart.Schedule.Clear();
  17.         //iisManager.ApplicationPoolDefaults.Recycling.PeriodicRestart.Schedule.Add(TimeSpan.FromHours(8));
  18.         iisManager.CommitChanges();
  19.         Trace.WriteLine("Role Started!");
  20.     }
  21.     catch (Exception e1)
  22.     {
  23.         Trace.Write(e1);
  24.     }
  25.     return base.OnStart();
  26. }

5. PS: Отмечу, что полностью отключать функцию пингования ни в коем случае нельзя, так как тогда все портальные сервисы азура будут говорить об неопределенном статусе инстанса, что поставит вас в тупик.

Метки:   Категории:microsoft | Code


blog comments powered by Disqus

Добавить комментарий

Кто я?

Программист. Я слежу за блогосферой и знаю, как будет развиваться интернет. Когда у меня есть время я даже прилагаю для этого усилия. Подробнее

Последние комментарии

Topbot at FeedsBurner

Популярные записи

Облако тэгов

Не отображать

Мои Твиты

Twitter февраля 12, 09:04
Роскомнадзор достучался до Azure http://dlvr.it/QyjSPS

Twitter февраля 6, 07:58
Про жизнь в Южной Осетии http://dlvr.it/QyHTwx

Twitter февраля 6, 07:58
Хиллари против Трампа в Америке и приход женщин во власть http://dlvr.it/QyHTxG https://twitter.com/f1ashr/status/1093056334906281985/photo/1

Twitter февраля 6, 07:58
Powering Down Google Reader http://dlvr.it/QyHTvM

Twitter февраля 4, 22:48
Разбор сериала Медичи: Повелители Флоренции http://dlvr.it/QyBKWh https://twitter.com/f1ashr/status/1092555544953466880/photo/1

Twitter февраля 4, 22:48
Добродел обновился http://dlvr.it/QyBKWM https://twitter.com/f1ashr/status/1092555541505748992/photo/1

Twitter февраля 4, 22:48
Минусы Windows Azure и проблемы облачных технологий http://dlvr.it/QyBKTx https://twitter.com/f1ashr/status/1092555537604984832/photo/1

Twitter февраля 2, 19:43
Трансляции Одноклассников (http://Ok.ru/live) добавлены в t30p http://dlvr.it/Qy3PD5 https://twitter.com/f1ashr/status/1091784208618405890/photo/1

Twitter февраля 2, 19:43
Upside down, Inside Out, Zero Gravity http://dlvr.it/Qy3PCF https://twitter.com/f1ashr/status/1091784204344385538/photo/1

Twitter февраля 2, 19:43
Европейский Гугл удаляет ваш сайт из результатов поиска http://dlvr.it/Qy3P8H

Twitter января 29, 09:55
@TheFranchiseCo7 @coinhive_com Forget about them, they dont process payments for 3 months already

Twitter января 18, 21:16
PUBG Mobile выпустила эмулятор Android http://dlvr.it/Qx0CYl https://twitter.com/f1ashr/status/1086371676554588160/photo/1

Twitter января 16, 12:09
Белый шум защищен авторским правом на youtube http://dlvr.it/Qwnrln

Twitter января 16, 09:09
Пример божественного вмешательства в фильме No country for old men http://dlvr.it/QwnGRH https://twitter.com/f1ashr/status/1085464059191865345/photo/1

Twitter января 16, 09:09
Украина готовит на Евровидение песню с быками http://dlvr.it/QwnGTW

Twitter января 9, 20:08
Рейтинг каналов Discord App http://dlvr.it/QwKXrr https://twitter.com/f1ashr/status/1083093077856727040/photo/1

Twitter января 8, 20:03
Про рейтинг http://dlvr.it/QwFNxN

Twitter января 8, 20:03
http://asp.net optimization http://dlvr.it/QwFNw9

Twitter января 8, 20:03
Закрытие Европы http://dlvr.it/QwFNx0

Twitter января 7, 13:03
Новогодние поздравления от Google http://dlvr.it/Qw7nXS https://twitter.com/f1ashr/status/1082261513778262018/photo/1

Мой твиттер

Копирайт

Все мысли, высказанные в блоге, являются моим мнением и за это мнение меня никто не забанит! Кроме того, никто не имеет право копировать материалы блога без использования ctrl+C/V!

© Copyright 2008