问题描述:在使用ASP.NET SignalR的应用程序中,当IIS处于AuthorizeRequest状态时,连接数量过多,导致应用程序性能下降。
解决方法:
public void Configuration(IAppBuilder app)
{
var config = new HubConfiguration
{
EnableDetailedErrors = true,
EnableJavaScriptProxies = true,
DisconnectTimeout = TimeSpan.FromSeconds(30) // 设置超时时间,单位为秒
};
app.MapSignalR(config);
}
其中,loadBalancerConfiguration
属性用于设置IIS的负载均衡配置,webSocket
元素用于禁用WebSocket连接(SignalR默认使用WebSocket进行通信)。
public void Configuration(IAppBuilder app)
{
var config = new HubConfiguration
{
EnableDetailedErrors = true,
EnableJavaScriptProxies = true,
EnableJSONP = true, // 启用JSONP以支持持久连接
EnableWebSockets = false // 禁用WebSocket连接
};
app.MapSignalR(config);
}
通过禁用WebSocket连接并启用JSONP,可以减少连接数量,从而提高性能。
请注意,以上解决方法仅为参考,具体的解决方法可能因应用程序的需求而有所差异。