Автоматическая настройка 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 октября 18, 06:44
Яндекс атаковал Израиль http://dlvr.it/QnhhCy

Twitter октября 17, 16:07
Как разверифицироваться в Твиттере? http://dlvr.it/Qnddsc https://twitter.com/f1ashr/status/1052591848303120390/photo/1

Twitter октября 17, 16:07
На батуте в космос http://dlvr.it/QnddrT

Twitter октября 17, 16:07
Estonian Fitsme http://dlvr.it/Qnddn3

Twitter октября 17, 16:07
Россия будет воевать http://dlvr.it/Qnddq7

Twitter октября 17, 15:33
Про браузеры http://dlvr.it/QndT1N

Twitter октября 17, 14:54
Прыгающий Робо-жук http://dlvr.it/QndGjW https://twitter.com/f1ashr/status/1052573591181582336/photo/1

Twitter октября 17, 14:54
Google Plus выкатывает красивые имена http://dlvr.it/QndGj2

Twitter октября 17, 14:54
Немецкие совестливые журналисты http://dlvr.it/QndGjD

Twitter октября 17, 09:27
Победа свободы над здравым смыслом http://dlvr.it/QnbjB5 https://twitter.com/f1ashr/status/1052491176593354752/photo/1

Twitter октября 17, 06:41
программа instagramliker обновлена 2018г http://dlvr.it/Qnb2DZ

Twitter октября 16, 07:50
CloudSearch http://dlvr.it/QnTLzB

Twitter октября 16, 07:50
Сидеть вредно. http://dlvr.it/QnTLzD

Twitter октября 16, 07:50
Вконтакте 7 лет http://dlvr.it/QnTLzH

Twitter октября 16, 07:50
Рейтинг авторитетности блогов http://dlvr.it/QnTLz2

Twitter октября 16, 07:50
Tech news http://dlvr.it/QnTLz5

Twitter октября 16, 07:13
Совет многоквартирного дома http://dlvr.it/QnTCHQ https://twitter.com/f1ashr/status/1052095075918872576/photo/1

Twitter октября 16, 07:13
Windows 10 и Новый мировой порядок http://dlvr.it/QnTCF0 https://twitter.com/f1ashr/status/1052095069317001216/photo/1

Twitter октября 16, 07:13
Украинские солдаты до сих пор не поняли с кем воюют http://dlvr.it/QnTC5Z https://twitter.com/f1ashr/status/1052095061586980864/photo/1

Twitter октября 16, 07:13
Продолжая тему браузеров http://dlvr.it/QnTC4k

Мой твиттер

Копирайт

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

© Copyright 2008