Автоматическая настройка 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 декабря 11, 17:52
Мировой крах в 2014 году глазами кино-зомби http://dlvr.it/QtNQt8 https://twitter.com/f1ashr/status/1072549750463967232/photo/1

Twitter декабря 11, 17:50
Гениальное приложение http://dlvr.it/QtNQsS

Twitter декабря 11, 17:50
Нанотехнологии,Юмор,Осколлково,СТС,видео http://dlvr.it/QtNQrB

Twitter декабря 7, 13:11
Механический медведь для Америки - Погружение во Тьму http://dlvr.it/Qt3hCf https://twitter.com/f1ashr/status/1071029327888736256/photo/1

Twitter декабря 6, 07:49
@coinhive_com Are you paying or not? Are you stopping your service?

Twitter декабря 1, 15:49
Международная система единиц СИ http://dlvr.it/QsZWxP https://twitter.com/f1ashr/status/1068894908939784192/photo/1

Twitter ноября 30, 15:47
Пользователи умудрились поломать гео-локацию в Инстаграм http://dlvr.it/QsVQn0

Twitter ноября 30, 15:47
Популярные блогеры и посты за 2017 год http://dlvr.it/QsVQmn https://twitter.com/f1ashr/status/1068532024984498176/photo/1

Twitter ноября 30, 15:47
Разбор сериала Медичи: Повелители Флоренции http://dlvr.it/QsVQmf https://twitter.com/f1ashr/status/1068532019930353664/photo/1

Twitter ноября 29, 15:45
Обновлен робот instagram для лайков http://dlvr.it/QsPrh2

Twitter ноября 29, 15:45
Skype and Baidu links http://dlvr.it/QsPrht

Twitter ноября 29, 15:45
О смене дизайна Вконтакте http://dlvr.it/QsPrgT

Twitter ноября 23, 13:18
Статистика просмотров Телеграма http://dlvr.it/Qrwybs

Twitter ноября 20, 11:54
По-тихому закрылся http://taaasty.com http://dlvr.it/QrgcJf

Twitter ноября 15, 21:21
Разное - сетевое http://dlvr.it/QrLfbH

Twitter ноября 12, 08:54
@lopp @coinhive_com Beware, that coinhive doesnt process payouts for last month and no reply from them.

Twitter ноября 6, 08:26
@MultiFollow_com @coinhive_com The same, cant get payment since Oct 29

Twitter октября 29, 18:13
Вконтакте закрыла гео-поиск http://dlvr.it/QptcDZ

Twitter октября 29, 17:48
RT @t30p: Моя Борьба (Mein Kampf) - Мыслить №112 https://youtu.be/eq3r3n3jAkY с помощью @YouTube

Twitter октября 23, 17:57
8-й час в России http://dlvr.it/QpG99N https://twitter.com/f1ashr/status/1054793845546790912/photo/1

Мой твиттер

Копирайт

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

© Copyright 2008