记一次.netcore 3.1 本地正常,服务器 502 bad gateway(响应时长超过2分钟)
有一个项目,在后台通过httpclient调用其他服务接口,该服务中会进行较复杂的计算,计算时长超过2分钟;在本地调试的时候,一切OK,但是部署到服务器,挂在IIS上后,
只要一调用该接口,计算完之后直接502错误(后台中添加日志检测逻辑是计算完成的:偶尔会出现计算未完成的情况),然后疯狂在网上看看有没有解决方案:
1、HttpClient _client = new HttpClient() 使用 using语法 或使用全局静态
2、_client.PostAsync(requestAddress, byteContent).Result 改为 await _client.PostAsync(requestAddress, byteContent)
3、_client.Timeout = TimeSpan.FromMinutes(30);
4、Program中配置超时时长:
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>().UseKestrel(option => { option.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(30); option.Limits.RequestHeadersTimeout = TimeSpan.FromMinutes(30); }).UseUrls("http://*:8804"); });
5、修改IIS并发进程数,1改为8
等等以上都没有效果,查看系统日志等等,也没有记录;看服务器的性能参数、线程等,也没有存在调用时飙升的情况。。。。。啊啊,哪位大佬碰到过麻烦指导一下;
实在没辙,因为是.netcore 代码嘛,可以不依赖与IIS,我直接运行exe启动,结果,可以了!!!蛋碎了一地,难道是IIS的问题???留待大佬解惑~
好在,问题暂时得到解决了,记录一下。