在用StackExchange.Redis这个组件时候,时不时会出现异常TimeOut解决方法如下,
解决方法: 在Program的Main入口方法里添加一句话:
System.Threading.ThreadPool.SetMinThreads(200, 200);
比如以下代码:
public class Program { public static void Main(string[] args) { System.Threading.ThreadPool.SetMinThreads(200, 200); // NLogBuilder.ConfigureNLog("Config/nlog.config"); // NLogBuilder.ConfigureNLog("Config/nlog.config").GetCurrentClassLogger(); CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args). ConfigureLogging((context, loggingbuilder) => { //该方法需要引入Microsoft.Extensions.Logging名称空间 loggingbuilder.AddFilter("System", LogLevel.Warning); //过滤掉系统默认的一些日志 loggingbuilder.AddFilter("Microsoft", LogLevel.Warning);//过滤掉系统默认的一些日志 //var path = Directory.GetCurrentDirectory() + "\log4net.config"; //不带参数:表示log4net.config的配置文件就在应用程序根目录下,也可以指定配置文件的路径 loggingbuilder.AddLog4Net("Config/log4net.config"); }) .UseStartup<Startup>(); }
SetMinThreads 微软官方的详情:https://docs.microsoft.com/zh-cn/dotnet/api/system.threading.threadpool.setminthreads?view=netcore-2.2
数值200,可以根据实际并发量缩小或变大。
StackExchange.Redis问题解决的其他解决方法:https://www.jianshu.com/p/20b1db2154a2