【问题标题】:ASP.NET Web Api controller discovery caching periodASP.NET Web Api 控制器发现缓存期
【发布时间】:2014-03-19 09:17:04
【问题描述】:

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

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

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-web-api controller


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢你!现在有道理为什么第一次调用很慢,我认为在进程回收控制器发现人员之后再次发生。我会记录下来看看会发生什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    相关资源
    最近更新 更多