我有。net core web api应用程序在IIS上运行。在应用程序的某些部分,我调用wcf服务的一些信息(异步,使用异步等待等)有时,wcf服务不可用,我得到超时(默认是1分钟),然后启动问题。因为有很多请求我的API,等等在wcf服务上,线程数开始上升,在某个点wcf服务开始正常工作,但当我的线程数超过200(我猜),它开始不断上升(1线程每秒,我猜),它不会停止。我的应用程序是无用的,唯一的方法是停止和启动IIS上的应用程序池,我的应用程序开始正常工作。
这是一个月一次的情况,但我不知道该怎么办。我试了很多次。下一个尝试是在调用wcf服务时降低超时时间。
听起来像断路器模式可以帮助你?
断路器背后的基本思想非常简单。将一个受保护的函数调用封装在一个断路器对象中,该对象监视故障。一旦故障达到某个阈值,断路器跳闸,并且所有对断路器的进一步调用都返回错误,根本不进行受保护的调用。
阅读更多:https://martinfowler.com/bliki/CircuitBreaker.html