gpt4 book ai didi

iis-7 - 通过 AppPool 回收持久化静态数据

转载 作者:行者123 更新时间:2023-12-01 11:56:54 25 4
gpt4 key购买 nike

我创建了一个 ASP .Net MVC 3 应用程序,允许用户根据文件名搜索各种媒体文件。这些文件很多,所以我创建了一个倒排索引,并将其存储在内存中。具体来说,我将其描述为

Dictionary<string,List<string>>. 

好吧,必须先创建此索引才能进行搜索,因此我创建了一个方法来构建它。它工作正常,一切都很好,但自然每次 AppPool 刷新时,我的索引都会丢失。我试过关闭 AppPool 回收,但我认为这是个坏主意(而且它似乎无论如何都会回收)。

我基本上不确定下一步应该做什么。有没有办法检测 AppPool 何时刷新和重建我的索引?或者完全禁用应用程序池回收是否安全?

干杯,-乔希

最佳答案

我认为 Mike 的回答很接近,但并不完美。问题在于应用程序启动事件仅在服务器本身启动时触发一次;每次回收应用程序池时它都不会触发。我试图做这件事以在池回收之前将一些数据序列化到磁盘并在之后读回(在将其存储在数据库中的过程中)。我发现应用程序启动事件在池回收后从未触发所以我的数据从未读回。我找不到在应用程序池回收后触发的事件,因此我被迫在将保存此数据的对象的构造函数内部读回该数据。它可以工作,但将数据保留在磁盘上的时间超出了我的接受范围。

在我看来,这不是一个理想的解决方案(即使您像我一样加密数据),但仍然有效。希望这可以帮助其他人寻找类似的解决方案,或者也许有人会偶然发现这一点并指出在应用程序池回收后实际触发的事件。我当然有兴趣了解那个。

关于iis-7 - 通过 AppPool 回收持久化静态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6260558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com