У меня есть решение SignalR, которое развернуто на Azure Web Role (облачный сервис, а не на Azure Web Site), и чтобы мы могли максимально увеличить количество подключений к каждому экземпляру, который мне нужен чтобы внести некоторые изменения в различные параметры ASP.NET, подробно описанные в этой статье:Обновление aspnet.config на роли Azure Web
Параметры appConcurrentRequestLimit и requestQueueLimit были легко изменены с помощью задачи запуска, использующей APPCMD для внесения соответствующих изменений. Однако параметр maxConcurrentRequestsPerCPU находится в файле aspnet.config, который нельзя изменить с помощью того же механизма.
Я пробовал обновлять этот файл непосредственно с помощью задачи запуска (сейчас это просто базовая замена файла), однако, похоже, она заменяется временем выполнения Azure после завершения задач запуска, и поэтому изменение теряется. Я могу запустить RDP в машину и внести изменения вручную, поэтому я видел, что он работает, однако это не является устойчивым для службы, которую мы ожидаем масштабировать вверх и вниз по требованию.
Любые идеи о том, как изменить эту настройку в среде Azure, будут оценены!
Возможно, вы можете использовать класс 'ServerManager' и изменить конфигурацию. Даже не начал это пытаться. – sharptooth
просто еще один слепой снимок: попытались заменить этот файл на OnStart класса RoleEntryPoint - в веб-ролях мы также можем иметь реализацию RoleEntryPoint, как в Ролях Работ. Его экземпляр будет находиться в процессе WaIISHost.exe в роли Web. Этот процесс всегда присутствует. И OnStart будет вызываться только после того, как будут сделаны изменения IIS, и сайт будет готов к запуску. – astaykov
Спасибо, дайте им попробовать. Также было предложено в Twitter, которое я попытаюсь добавить в DWORD реестра с именем MaxConcurrentRequestsPerCPU в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ {version} – Ben