Summary:
我在 IIS 中有一个名为“网站”的 ASP.NET MVC 网站,使用名为“WebsiteAppPool”的应用程序池。 WebsiteAppPool 配置为允许最多 4 个工作进程,实际上创建了一个“网络花园”。该网站还通过 web.config 配置为使用 CacheProfiles 启用输出缓存。
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<clear />
<add name="ControllerNameActionName" duration="43200" varyByParam="*" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
我的问题是 -
AppPool 的工作进程会共享输出缓存,还是每个工作进程都拥有输出缓存,从而在 AppPool 中创建 4 个缓存副本。
Note:
我主要担心的是,这会揭穿缓存输出的好处,而且我最好让一个 WorkerProcess 提供缓存输出,而不是 4 个。
From MSDN:
由于网络园支持使用多个进程,因此每个进程都将拥有自己的应用程序状态副本、进程内会话状态、缓存和静态数据。网络花园不应该用于所有应用程序,特别是当它们需要维护状态时。在决定网络花园模式是否合适之前,请务必对应用程序的性能进行基准测试。
使用网络园时,了解会话状态和循环的工作原理非常重要。考虑其他应用程序池设置如何影响应用程序也很重要
如果您正在执行进程内会话状态(无论如何您希望不是这样),网络花园尤其棘手。根据我的经验,我发现网络花园是rarely人们认为自己的好处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)