asp.net - SignalR makes IIS hang after rebuild -
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 rebuild project/solution, iis spikes max cpu usage , cannot reload page. checked procmon.exe , reports enormous amount (>20 000/s) of "regopenkey/regquerykey" operations 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: hklm\system\currentcontrolset\services\signalr\performance 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: hklm\system\currentcontrolset\services\signalr\performance tid: 23272 duration: 0.0000062 desired access: read
these steps use reproduce issue:
- everything works fine.
- i write code , compile
- signalr reconnect websocket transport , gets response in response header: "http/1.1 101 switching protocols"
- i request , iis worker process hangs , never comes or wait t 2-3 minutes , things working again.
i experiencing in iis express well. resolve killing iis worker process , reloading. permissions issue? application pool runs under local user, have tried application pool identity same results. should in "hklm\system\currentcontrolset\services\signalr\performance"? there no such registry key on machine.
i have not seen behavior before. 20,000/s "regopenkey/regquerykey" operations lasting 2-3 minutes continuously? of these operations accessing "hklm\system\currentcontrolset\services\signalr\performance" path?
signalr designed stop further loading of performance counters after performance counter fails load.
perhaps installing signalr performance counters resolve issue. create hklm\system\currentcontrolset\services\signalr\performance.
you have ensure application pool runs under user in "performance monitor users" group.
Comments
Post a Comment