C# ASP.NET Web Api控制器发现缓存期

C# ASP.NET Web Api控制器发现缓存期,c#,asp.net,asp.net-mvc,asp.net-web-api,controller,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,Controller,我正在使用自定义程序集解析器从Web Api项目的不同文件夹加载许多控制器。我的问题是服务电话花的时间太长。对于第一次调用,这是可以的,因为所有控制器加载相关人员都会去那里,并且后续服务调用所需的时间正如预期的那样很短,但在大约1小时的非活动Api(未进行任何服务调用)后,第一次调用再次花费的时间太长,可能控制器发现过程再次发生 api“重新加载”控制器信息需要多长时间?还是在第一次服务调用时只加载一次?发生的情况是,您的网站空闲超过20分钟(默认值),因此IIS将其从内存中卸载,因此,从内存中

我正在使用自定义程序集解析器从Web Api项目的不同文件夹加载许多控制器。我的问题是服务电话花的时间太长。对于第一次调用,这是可以的,因为所有控制器加载相关人员都会去那里,并且后续服务调用所需的时间正如预期的那样很短,但在大约1小时的非活动Api(未进行任何服务调用)后,第一次调用再次花费的时间太长,可能控制器发现过程再次发生


api“重新加载”控制器信息需要多长时间?还是在第一次服务调用时只加载一次?

发生的情况是,您的网站空闲超过20分钟(默认值),因此IIS将其从内存中卸载,因此,从内存中卸载网站后的第一个请求需要一段时间,因为IIS将网站加载回内存,这也被称为预热网站

通过更改网站应用程序池的“空闲超时”属性,您可以在高级应用程序池设置的“流程模型”部分中找到此设置,从而使网站在内存中保持较长时间的温暖


或者,如果您使用的是IIS 8.0,则可以利用应用程序初始化功能,将应用程序池设置为“始终运行”。

发生的情况是,您的网站闲置超过20分钟(默认设置),因此IIS会从内存中卸载它,因此,从内存中卸载网站后的第一个请求需要一些时间,因为IIS正在将网站加载回内存,这也称为预热网站

通过更改网站应用程序池的“空闲超时”属性,您可以在高级应用程序池设置的“流程模型”部分中找到此设置,从而使网站在内存中保持较长时间的温暖


或者,如果您使用的是IIS 8.0,则可以利用应用程序初始化功能,将应用程序池设置为“始终运行”。

谢谢!现在有道理了,为什么第一次呼叫很慢,我认为在流程回收控制器发现人员再次出现之后。我会记录下来,看看会发生什么。谢谢你!现在有道理了,为什么第一次呼叫很慢,我认为在流程回收控制器发现人员再次出现之后。我要把它记录下来,看看会发生什么。