我计划创建一个Sharepoint计时器作业,并将其配置为在我们所有的场web前端计算机上运行。
计时器作业将从SP SQL Server实例读取数据,并有望将其更新到我们拥有的两个Web上的HTTPRuntime缓存对象中。
问题是,计时器作业是否可以访问ASP.net缓存对象,因为它们是从owstimer.exe运行的?
如果不是,在两个web前端更新缓存项目的最佳方式是什么?我应该指出的是,我们当前没有将IIS站点配置为单独访问。也就是说,我们有一个访问场的URL,而我们的内容交换机决定哪台机器获得它。
那么这是可能的吗?
发布于 2011-01-29 02:24:01
您不能直接访问缓存。作业在不同的进程中运行的时间与您的网站运行的应用程序池不同。
你可以间接地做这件事。我能想到的一种方法是在你的网站上创建一个简单的web服务,它监听你的计时器作业并更新网站上的缓存。
另一个选择是查看memcached for .NET,这是一个允许您从其他进程访问缓存的项目。
发布于 2011-01-30 09:48:35
如果您想要从WFE访问它,它不必是HTTP运行时缓存,对吧?也许你可以把它存储在一个列表中?如果这太重量级、效率太低或者听起来很傻,那么您可以通知WFE通过让您的计时器作业在SPWebApplication的Properties哈希表中添加一个标记来拉取(或无效)缓存的项。这个哈希表不能用于存储项目本身,因为它仅限于DateTime、bool、string、int等原语。
https://stackoverflow.com/questions/4831607
复制相似问题