我有两个不同但密切相关的ASP.NET Web应用程序,其中某些页面使用相同的数据。在这两个应用程序中,我都使用ObjectDataSource控件,并设置EnableCaching="true",并且在两个应用程序中使用相同的CacheKeyDependency值。
我希望当一个应用程序插入或删除新记录时,可以清除两个应用程序中的缓存。我开始只是使用Page.Cache简单地清除缓存,但很快意识到它不会清除另一个应用程序中的缓存。然后,我为每个应用程序添加了一个WCF服务;每个服务都会清除其所在应用程序中的缓存对象。但实际上并不会...
首先,我发现WCF中的System.Web.HttpContext始终为null。然后,我尝试实例化System.Web.Routing.RequestContext对象,但其HttpContext对象也始终为null。
最终问题归结为:如果我设置了一个Page.Cache对象,那么如果该服务托管在与页面相同的应用程序中,WCF服务能否访问相同的缓存对象?