SignalR使得IIS挂起后重建 [英] SignalR makes IIS hang after rebuild

查看:548
本文介绍了SignalR使得IIS挂起后重建的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Windows 8.1中。 IIS 8.5。 SignalR版本:

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" />

每当我重建我的项目/解决方案,IIS尖峰最大的CPU使用率,我不能重装我的网页。我检查procmon.exe并报告了大量的(> 20 000 / S)这样的一RegOpenKey / RegQueryKey操作:

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:   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 are the steps I use to reproduce this issue:


  1. 一切工作正常。

  2. 我写了一些code和汇编

  3. SignalR确实与WebSocket的交通重新连接并获取在响应头这样的回应:HTTP / 1.1 101交换协议

  4. 我做一个请求,IIS工作进程挂起,永不回来或者我等待牛逼2-3分钟,事情再次合作。

我在IIS防爆preSS也遇到此。通常我通过杀死IIS工作进程和重装解决这个问题。这是一个权限问题?目前,该应用程序池在我的本地用户运行,但我已经尝试了应用程序池标识具有相同的结果。应在HKLM \\系统\\ CurrentControlSet \\服务\\ SignalR \\性能是什么?目前有我的机器上没有这样的注册表项。

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 "HKLM\System\CurrentControlSet\Services\SignalR\Performance"? Currently there is no such registry key on my machine.

推荐答案

我以前没有见过这种行为。是20000元/的RegOpenKey / RegQueryKey从操作连续2-3分钟持久?是否所有这些操作访问的HKLM \\系统\\ CurrentControlSet \\服务\\ SignalR \\性能的道路?

I have not seen this behavior before. Are the 20,000/s "RegOpenKey/RegQueryKey" operations lasting from 2-3 minutes continuously? Are all of these operations accessing the "HKLM\System\CurrentControlSet\Services\SignalR\Performance" path?

SignalR设计后的任何性能计数器无法加载,停止性能计数器的进一步加载。

SignalR is designed to stop further loading of performance counters after any performance counter fails to load.

安装SignalR性能计数器能够解决您的问题。这将创建HKLM \\系统\\ CurrentControlSet \\服务\\ SignalR \\性能。

Perhaps installing the SignalR performance counters will resolve your issue. This will create HKLM\System\CurrentControlSet\Services\SignalR\Performance.

您必须确保您的应用程序池用户下运行性能监视器用户组中。

You will have to ensure that your application pool runs under a user in the "Performance Monitor Users" group.

这篇关于SignalR使得IIS挂起后重建的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆