首先,WebGarden是一种IIS应用程序池模式,它允许多个工作进程(或工人)在单个应用程序池中运行。这通常用于处理大量请求或需要高可用性的应用程序。
在这种情况下,需要确保SignalR连接与Web花园兼容。一种解决方法是使用共享内存作为消息传递的机制,这可以通过在SignalR的Hubs配置中添加以下设置来实现:
GlobalHost.DependencyResolver.UseSqlServer("")
.UseSharedConnection();
其中,连接字符串应替换为确切的数据库连接字符串。
另一种解决方法是使用单个工作进程托管API,这可以通过禁用WebGarden选项来实现。
在应用程序池的高级设置中,将“Maximum Worker Processes”选项设置为1即可。
请注意,此选项可能会降低应用程序的性能和可靠性,并且不建议在大型应用程序中使用。
如果仍然遇到SignalR连接失败的问题,请确保使用的是兼容的版本,并在应用程序中启用详细的日志记录,以便更好地了解问题的来源。