2015-01-13 35 views
6

Tôi có giải pháp SignalR được triển khai cho vai trò Web Azure (dịch vụ đám mây, không phải Web site Azure) và để đảm bảo chúng tôi có thể tối đa hóa số lượng kết nối cho từng trường hợp tôi cần để thực hiện một số thay đổi cài đặt ASP.NET khác nhau như được mô tả chi tiết trong bài viết này: http://www.asp.net/signalr/overview/performance/signalr-performance#tuningCập nhật aspnet.config trên Azure Web Role

Cài đặt appConcurrentRequestLimit và requestQueueLimit dễ dàng thay đổi với tác vụ khởi động sử dụng APPCMD để thực hiện các thay đổi có liên quan. Tuy nhiên, thiết lập maxConcurrentRequestsPerCPU nằm trong tệp aspnet.config không thể thay đổi thông qua cùng một cơ chế.

Tôi đã thử cập nhật tệp đó trực tiếp với tác vụ khởi động (chỉ là thay thế tệp cơ bản bây giờ), tuy nhiên dường như nó được thay thế bằng thời gian chạy Azure sau khi tác vụ khởi động đã hoàn thành và thay đổi bị mất. Tôi có thể RDP vào máy và thực hiện thay đổi bằng tay vì vậy tôi đã thấy rằng nó hoạt động tuy nhiên đó không phải là bền vững cho một dịch vụ mà chúng tôi mong đợi để mở rộng lên và xuống theo yêu cầu.

Bất kỳ ý tưởng nào về cách thay đổi cài đặt này trong môi trường Azure sẽ được đánh giá cao!

+1

Có lẽ bạn có thể sử dụng lớp 'ServerManager' và thay đổi cấu hình. Thậm chí không bắt đầu cố gắng này mặc dù. – sharptooth

+0

chỉ là một bắn mù: đã cố gắng thay thế tập tin đó từ OnStart của một lớp RoleEntryPoint - trong vai trò web chúng tôi cũng có thể thực hiện RoleEntryPoint như chúng ta làm trong vai trò người lao động. Ví dụ của nó sẽ tồn tại trong quá trình WaIISHost.exe trên Web Role. Quá trình này luôn ở đó. Và OnStart sẽ được gọi là chỉ sau khi tất cả những thay đổi IIS được thực hiện và trang web đã sẵn sàng để chạy. – astaykov

+0

Cảm ơn cả hai, sẽ cho những người dùng thử. Cũng đã có một gợi ý trên Twitter mà tôi sẽ cố gắng mà là để thêm một DWORD registry tên MaxConcurrentRequestsPerCPU trong HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ {version} – Ben

Trả lời

6

tôi đã kết thúc bằng cách sử dụng registry cách tiếp cận dựa trên sau đó cho phép tôi thay đổi thiết lập maxConcurrentRequestsPerCPU mà không sử dụng aspnet.config

tôi thêm việc sử dụng sau đây của tiện ích dòng lệnh REG để startup.cmd hiện tại của tôi (đã có trong sử dụng để gọi APPCMD để thay đổi các cài đặt khác):

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 

Điều này sẽ định cấu hình cả hai ứng dụng 32 và 64 bit, mặc dù tôi chỉ cần 64 trong trường hợp này.

+2

Nếu bạn đang sử dụng trong một nhiệm vụ khởi động, đừng quên '/ f' ở cuối hoặc nó sẽ đợi cho đầu vào lần thứ hai. – Dunc

Các vấn đề liên quan