在Azure Web角色上更新aspnet.config

问题描述 投票:6回答:1

我有一个部署到Azure Web角色(云服务,而不是Azure Web站点)的SignalR解决方案,为了确保我们可以最大化每个实例的连接数,我需要对各种ASP.NET设置进行一些更改,如详细在这篇文章中:http://www.asp.net/signalr/overview/performance/signalr-performance#tuning

使用APPCMD进行相关更改的启动任务可以轻松更改appConcurrentRequestLimit和requestQueueLimit设置。但是,maxConcurrentRequestsPerCPU设置驻留在aspnet.config文件中,该文件无法通过相同的机制进行更改。

我尝试直接使用启动任务更新该文件(现在只是一个基本的文件替换),但是在启动任务完成后它似乎被Azure运行时替换,因此更改丢失了。我可以RDP进入机器并手动进行更改,因此我已经看到它可以工作,但对于我们希望按需扩展和缩小的服务而言,这是不可持续的。

有关如何在Azure环境中更改此设置的任何想法将不胜感激!

azure signalr azure-web-roles azure-cloud-services appcmd
1个回答
6
投票

我最终使用以下基于注册表的方法,允许我在不使用aspnet.config的情况下更改maxConcurrentRequestsPerCPU设置

我将REG命令行实用程序的以下用法添加到我现有的startup.cmd(已用于调用APPCMD以更改其他设置):

REG ADD HKLM\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0 /v MaxConcurrentRequestsPerCPU /t REG_DWORD /d 10000
REG ADD HKLM\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\4.0.30319.0 /v MaxConcurrentRequestsPerCPU /t REG_DWORD /d 10000

这将配置32位和64位应用程序池,但在此实例中我只需要64位。

© www.soinside.com 2019 - 2024. All rights reserved.