Windows 8.1. IIS 8.5. SignalR versions:
<package id="Microsoft.AspNet.SignalR" version="2.1.2" targetFramework="net451" />
<package id="Microsoft.AspNet.SignalR.Core" version="2.1.2" targetFramework="net451" />
<package id="Microsoft.AspNet.SignalR.JS" version="2.1.2" targetFramework="net451" />
<package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.1.2" targetFramework="net451" />
Whenever I rebuild my project/solution, IIS spikes to max CPU usage and I cannot reload my page. I checked procmon.exe and it reports an enormous amount (>20 000/s) of "RegOpenKey/RegQueryKey" operations like these ones:
Date & Time: 19.11.2014 10:47:20
Event Class: Registry
Operation: RegQueryKey
Result: SUCCESS
Path: HKLM
TID: 23272
Duration: 0.0000059
Query: HandleTags
HandleTags: 0x0
Date & Time: 19.11.2014 10:47:20
Event Class: Registry
Operation: RegOpenKey
Result: REPARSE
Path: HKLMSYSTEMCurrentControlSetServicesSignalRPerformance
TID: 23272
Duration: 0.0000121
Desired Access: Read
Date & Time: 19.11.2014 10:47:20
Event Class: Registry
Operation: RegOpenKey
Result: NAME NOT FOUND
Path: HKLMSystemCurrentControlSetServicesSignalRPerformance
TID: 23272
Duration: 0.0000062
Desired Access: Read
These are the steps I use to reproduce this issue:
- Everything works fine.
- I write some code and compile
- SignalR does a reconnect with WebSocket transport and gets this response in the response header: "HTTP/1.1 101 Switching Protocols"
- I do a request and IIS Worker process hangs and never comes back OR I wait t 2-3 minutes and things are working again.
I am experiencing this in IIS Express as well. Normally I resolve this by killing the IIS Worker process and reloading. Is this a permissions issue? Currently the application pool runs under my local user, but I have tried Application Pool Identity with the same results. What should be in "HKLMSystemCurrentControlSetServicesSignalRPerformance"? Currently there is no such registry key on my machine.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…