ASMX WebService CacheDuration,是会话还是应用程序级别?

时间:2011-10-07 18:05:42

标签: c# web-services caching asmx

我正在尝试在WebService中缓存WebMethod的输出。我尝试缓存的方法返回的数据最多可能每隔几个月更改一次,所以我想缓存该输出以减少加载时间。我一直在查看WebMethod CacheDuration属性,但如果CacheDuration只是Session级别,则缓存输出对我没有帮助。有谁知道CacheDuration是否适用于应用程序级别?

2 个答案:

答案 0 :(得分:2)

在MSDN上没有明确的答案(请参阅http://msdn.microsoft.com/en-us/library/system.web.services.webmethodattribute.cacheduration%28v=VS.100%29.aspxhttp://msdn.microsoft.com/en-us/library/byxd99hx%28v=VS.90%29.aspx)它表明缓存依赖于“唯一参数集”而不是会话...所以我假设它是应用程序级别 - 通过这些链接提供的样本,您可以轻松地测试...

有关缓存的另一个值得探索的选择是明确使用Cache类 - 这可以完全控制缓存的所有方面,尽管不如您描述的方法“透明”...例如,您可以设置持续时间缓存项目保持“有效”的时间长度,您可以提供在项目即将被丢弃时调用的回调等。

答案 1 :(得分:0)

我找不到一个明确表示它是其中之一的引用,但我会假设它应用于应用程序级别,只是因为在会话级别应用它没有意义例如它无助于您的可扩展性。