我有一个部署到Azure Web角色(云服务,而不是Azure网站)的SignalR解决方案,以确保我们可以最大化每个实例的连接数量,我需要对各种ASP.NET进行一些更改本文详细介绍的设置:http://www.asp.net/signalr/overview/performance/signalr-performance#tuning
使用APPCMD进行相关更改的启动任务可以轻松更改appConcurrentRequestLimit和requestQueueLimit设置。但是,maxConcurrentRequestsPerCPU设置驻留在aspnet.config文件中,该文件无法通过相同的机制进行更改。
我尝试直接使用启动任务更新该文件(现在只是一个基本的文件替换),但是在启动任务完成后它似乎被Azure运行时替换,因此更改丢失了。我可以RDP进入机器并手动进行更改,因此我已经看到它可以正常工作,但对于我们希望按需扩展和缩小的服务而言,这是不可持续的。
有关如何在Azure环境中更改此设置的任何想法都将不胜感激!
答案 0 :(得分: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位。